Vektör C++ Örnekle Standart Şablon Kitaplığı (STL)
⚡ Akıllı Özet
Vektör C++ Standart Şablon Kütüphanesinden gelen, öğeler eklendiğinde veya kaldırıldığında otomatik olarak boyutunu değiştiren ve öğeleri bitişik bellekte depolayan dinamik bir dizidir; böylece programcılar yineleyiciler kullanarak bunlara erişebilir ve bunlar arasında gezinebilirler.
Nedir C++ Vektör?
A C++ Vektör, kendisini otomatik olarak yeniden boyutlandırabilen dinamik bir dizidir. Yeniden boyutlandırma, vektöre bir öğe eklendikten veya vektörden silindikten sonra gerçekleşir. Depolama, konteyner tarafından otomatik olarak işlenir. Bir vektörün öğeleri bitişik depolamada depolanır. Bu, C++ programcıların yineleyicileri kullanarak vektör elemanlarına erişmesini ve bunları dolaşmasını sağlar.
Bir vektöre yeni veri ekleme işlemi vektörün sonunda yapılır. Bu işlem diferansiyel zaman alır. Bir vektörden eleman çıkarma işlemi sabit zaman alır. Bunun nedeni, vektörün yeniden boyutlandırılmasına gerek olmamasıdır. Vektörün başına eleman ekleme veya çıkarma işlemi doğrusal zaman alır.
Vektörlerle kod yazmadan önce, ne zaman vektörlerin doğru konteyner olduğunu bilmek faydalı olur.
Bir Vektör Ne Zaman Kullanılır?
A C++ vektör aşağıdaki durumlarda kullanılmalıdır:
- Sürekli olarak değişen veri öğeleriyle uğraşırken.
- Verinin boyutu başlamadan önce bilinmiyorsa, vektör sizden konteynerin maksimum boyutunu ayarlamanızı gerektirmez.
Vektörler Nasıl Başlatılır? C++
Vektörlerin söz dizimi C++ olduğu:
vector <data-type> name (items)
Yukarıda gösterildiği gibi, vektör anahtar sözcüğüyle başlıyoruz.
- MKS veri tipi Vektörde saklanacak elemanların veri türüdür.
- MKS isim Vektörün veya veri elemanlarının adıdır.
- MKS ürün Vektör verisi için eleman sayısını belirtir. Bu parametre isteğe bağlıdır.
Bir vektör oluşturulduktan sonra, yineleyiciler size vektörün elemanları arasında gezinmek için işaretçi benzeri bir yol sağlar.
yineleyiciler
Yineleyicilerin amacı, bir vektörde depolanan öğelere erişmemize yardımcı olmaktır. Bir işaretçi gibi çalışan bir nesnedir. İşte desteklenen yaygın yineleyiciler: C++ vektörler:
- vektör::başlangıç(): vektörün ilk elemanına işaret eden bir yineleyici verir.
- vektör::son(): vektörün sondan önceki öğesine işaret eden bir yineleyici verir.
- vektör::cbegin(): Bu, vector::begin() ile aynıdır, ancak elemanları değiştirme yeteneğine sahip değildir.
- vektör::cend(): Bu, vector::end() ile aynıdır ancak vektör elemanlarını değiştiremez.
Aşağıdaki örnek, bir vektörü doldurur ve ardından hem değiştirilebilir hem de sabit yineleyiciler kullanarak bu vektörde gezinir.
Örnek 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << "Output from begin and end: "; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << " "; cout << "\nOutput from cbegin and cend: "; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << " "; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Code Açıklama:
- iostream başlık dosyasını kodumuza ekleyin. Konsoldan okumamıza ve konsola yazmamıza olanak tanıyacak.
- Vektör başlık dosyasını kodumuza ekleyin. Vektörlerle çalışmamıza izin verecek C++.
- Sınıflarını ve işlevlerini çağırmadan kullanabilmek için std ad alanını ekleyin.
- Program mantığının eklenmesi gereken main() fonksiyonunu çağırın.
- {, main() işlevinin gövdesinin başlangıcını işaret eder.
- Bir tam sayı kümesini depolamak için nums adlı bir vektör bildirin.
- Vektör üzerinde yineleme yapmamıza yardımcı olacak bir for döngüsü oluşturun. Değişken, vektör elemanları üzerinde, 1. elemandan 5. elemana kadar yineleme yapmamıza yardımcı olacaktır.
- Öğeleri arkadan vektör numarasına itin. Her yineleme için bu, a değişkeninin mevcut değerini vektöre 1'den 5'e kadar ekleyecektir.
- Konsola bir miktar metin yazdırın.
- Başlangıçtan sondaki öğeye kadar vektör sayılarının öğeleri üzerinde yineleme yapmak için bir yineleyici değişkeni a kullanın. Vector::begin() ve Vector::end() yineleyicilerini kullandığımızı unutmayın.
- Her yineleme için yineleyici değişkeni a tarafından işaret edilen değerleri konsolda yazdırın.
- Konsola bir miktar metin yazdırın. \n, imleci oradan yazdırmak için yeni satıra taşıyan yeni bir satır karakteridir.
- Vektör nums'un elemanları üzerinde baştan sona, sondan sonraki elemana kadar yineleme yapmak için bir yineleyici değişkeni kullanın. `vector::cbegin()` ve `vector::cend()` yineleyicilerini kullandığımıza dikkat edin.
- Her yineleme için yineleyici değişkeni a tarafından işaret edilen değerleri konsolda yazdırın.
- Program başarıyla çalışırsa ana işlev bir değer döndürmelidir.
- Main() işlevinin gövdesinin sonu.
Düzenleyiciler
Değiştiriciler belirtilen veri tipinin anlamını değiştirmek için kullanılır. İşte ortak değiştiriciler: C++:
- vektör::Push_back(): Bu değiştirici, elemanları arkadan iter.
- vektör::insert(): Belirli bir konumdaki bir vektöre yeni öğeler eklemek için.
- vektör::pop_back(): Bu değiştirici, vektör öğelerini arkadan kaldırır.
- vektör::erase(): Belirli bir konumdan bir dizi öğeyi kaldırmak için kullanılır.
- vektör::clear(): Tüm vektör öğelerini kaldırır.
Bir sonraki örnekte, bir vektörün nasıl değiştiğini görmek için bu değiştiriciler sırayla uygulanacaktır.
Örnek 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; nums.assign(5, 1); cout << "Vector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.push_back(2); int n = nums.size(); cout << "\nLast element: " << nums[n - 1]; nums.pop_back(); cout << "\nVector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.insert(nums.begin(), 7); cout << "\nFirst element: " << nums[0]; nums.clear(); cout << "\nSize after clear(): " << nums.size(); }
Çıktı:
İşte kodun ekran görüntüsü:
Code Açıklama:
- İşlevlerini kullanmak için iostream başlık dosyasını kodumuza ekleyin.
- İşlevlerini kullanmak için vektör başlık dosyasını kodumuza ekleyin.
- Sınıflarını çağırmadan kullanmak için std ad alanını ekleyin.
- main() fonksiyonunu çağırın. Program mantığı kendi bünyesine eklenmelidir.
- main() fonksiyonunun gövdesinin başlangıcı.
- Bazı tamsayı değerlerini saklamak için nums adında bir vektör bildirin.
- 5 elementi vektör numaralarında saklayın. Her biri 1 değerine sahiptir.
- Konsola bir miktar metin yazdırın.
- Vektör sayılarının öğeleri üzerinde yineleme yapmak için bir yineleyici değişken a kullanın.
- Her yineleme için vektör sayılarının değerlerini konsola yazdırın.
- Vektör sayılarının sonuna 2 değerini ekleyin.
- Vektör sayılarının boyutunu depolamak için bir n tamsayı değişkeni bildirin.
- Vektör numaralarının son değerini diğer metnin yanında yazdırın. 2 değerini döndürmesi gerekir.
- Vektör numaralarından son öğeyi kaldırın. 2'si kaldırılacak.
- Konsoldaki metni yazdırın. \n, metni orada yazdırmak için imleci yeni satıra taşır.
- Vektör sayılarının öğeleri üzerinde yineleme yapmak için bir yineleyici değişken a kullanın.
- Her yineleme için vektör sayılarının değerlerini konsola yazdırın.
- 7 değerini vektör sayılarının başına ekleyin.
- Vektör numaralarının ilk değerini diğer metnin yanında yazdırın. 7'ye dönmelidir.
- Vektör numaralarından tüm öğeleri silin.
- Tüm içeriği temizledikten sonra vektör numarasının boyutunu diğer metnin yanında yazdırın. 0 döndürmelidir.
- Main() işlevinin gövdesinin sonu.
Kapasite
Aşağıdakileri kullanın fonksiyonlar Bir vektörün kapasitesini belirlemek için:
- Boyut() – Vektördeki öğe sayısını döndürür.
- Maksimum_boyut() – Bir vektörün saklayabileceği en yüksek öğe sayısını döndürür.
- Kapasite() – Bu fonksiyon, bir vektöre ayrılan depolama alanının miktarını döndürür.
- Yeniden boyutlandır() – Bu komut, kapsayıcıyı n öğe içerecek şekilde yeniden boyutlandırır. Vektörün mevcut boyutu n'den büyükse, vektörün sonundaki öğeler kaldırılır. Vektörün mevcut boyutu n'den küçükse, vektörün sonuna fazladan öğeler eklenir.
- Boş() – Vektör boşsa true, boş değilse false döndürür.
Bu son örnek, yukarıdaki kapasite fonksiyonlarını kullanarak bir vektörün depolama alanını raporlar ve ayarlar.
Örnek 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vector1; for (int x = 1; x <= 10; x++) vector1.push_back(x); cout << "Vector size: " << vector1.size()<< endl; cout << "Vector capacity: " << vector1.capacity() << endl; cout << "Maximum size of vector: " << vector1.max_size()<< endl; vector1.resize(5); cout << "Vector size after resizing: " << vector1.size() << endl; if (vector1.empty() == false) cout << "Vector is not empty"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Çıktı:
İşte kodun ekran görüntüsü:
Code Açıklama:
- İşlevini kullanmak için iostream başlık dosyasını kodumuza ekleyin.
- İşlevlerini kullanmak için vektör başlık dosyasını kodumuza ekleyin.
- Sınıflarını çağırmadan kullanmak için std ad alanını kodumuza ekleyin.
- main() fonksiyonunu çağırın. Program mantığı bu fonksiyonun gövdesine eklenmelidir.
- Tam sayıları depolamak için vektör1 adlı bir vektör oluşturun.
- 1'den 10'a kadar değerlere sahip x değişkeni oluşturmak için for döngüsünü kullanın.
- X değişkeninin değerlerini vektöre aktarın.
- Vektörün boyutunu konsoldaki diğer metnin yanında yazdırın.
- Vektörün kapasitesini konsoldaki diğer metinlerin yanında yazdırın.
- Konsoldaki diğer metinlerin yanında vektörün tutabileceği maksimum öğe sayısını yazdırın.
- Vektörü yalnızca 5 öğeyi tutacak şekilde yeniden boyutlandırın.
- Vektörün yeni boyutunu diğer metnin yanına yazdırın.
- Vektörün boş olup olmadığını kontrol edin.
- Vektör boş değilse metni konsola yazdırın.
- Vektör boşsa ne yapılacağını belirtmek için else ifadesini kullanın.
- Vektör boşsa konsolda yazdırılacak metin.
- Program başarılı bir şekilde tamamlandıktan sonra değeri döndürmelidir.
- main() işlev gövdesinin sonu.






