Vektör C++ Örnekle Standart Şablon Kitaplığı (STL)
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 gerçekleştirilir. Bir vektörün elemanları bitişik depolamada saklanır. Bu izin verir C++ programcıların yineleyicileri kullanarak vektör elemanlarına erişmesini ve bunları dolaşmasını sağlar.
Yeni verilerin bir vektöre eklenmesi vektörün sonunda yapılır. Bu farklı bir zaman alır. Bir vektörden bir elemanın çıkarılması sabit zaman alır. Bunun nedeni, vektörü yeniden boyutlandırmaya gerek olmamasıdır. Vektörün başına bir öğenin eklenmesi veya silinmesi doğrusal zaman alır.
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.
- Başlamadan önce verinin boyutu bilinmiyorsa vektör, kabın 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.
- Veri türü, vektörde depolanacak öğelerin veri türüdür.
- Ad, vektörün veya veri öğelerinin adıdır.
- Öğeler, vektörün verileri için öğe sayısını belirtir. Bu parametre isteğe bağlıdır.
yineleyiciler
Yineleyicilerin amacı, bir vektörde depolanan öğelere erişmemize yardımcı olmaktır. İşaretçi gibi çalışan bir nesnedir. İşte desteklenen ortak yineleyiciler: C++ vektörler:
- vektör:: begin(): vektörün ilk elemanına işaret eden bir yineleyici verir.
- vektör:: bitiş(): vektörün sondan önceki öğesine işaret eden bir yineleyici verir.
- vektör::cbegin(): vektör::begin() ile aynıdır, ancak öğeleri değiştirme yeteneği yoktur.
- vektör::cend(): vektör::end() ile aynıdır ancak vektör öğelerini değiştiremez.
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.
Ö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ü:
Kod Açıklaması:
- 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, 1'den itibaren vektör öğeleri üzerinde yineleme yapmamıza yardımcı olacaktır.st 5 içinth elemanları.
- Öğ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 konsola 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 sayılarının öğeleri üzerinde baştan sona son öğeye kadar yineleme yapmak için bir yineleyici değişken kullanın. Vector::cbegin() ve Vector::cend() 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.
- Program başarıyla çalışırsa ana işlev bir değer döndürmelidir.
- Main() işlevinin gövdesinin sonu.
Ö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ü:
Kod Açıklaması:
- İşlevlerini kullanmak için iostream başlık dosyasını kodumuza ekleyin.
- Kullanmak için vektör başlık dosyasını kodumuza ekleyin. fonksiyonlar.
- 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
Bir vektörün kapasitesini belirlemek için aşağıdaki fonksiyonları kullanın:
- Boyut() -Bir vektördeki öğe sayısını döndürür.
- Maksimum_boyut() -Bir vektörün depolayabileceği en yüksek öğe sayısını döndürür.
- Kapasite () –It bir vektöre ayrılan depolama alanı miktarını döndürür.
- Yeniden Boyutlandır () –Bu kapsayıcıyı n öğe içerecek şekilde yeniden boyutlandırır. Vektörün mevcut boyutu n'den büyükse arka öğeler vektörden kaldırılacaktır. Vektörün mevcut boyutu n'den küçükse ekstra öğeler vektörün arkasına eklenecektir.
- Boş () –iBir vektör boşsa t true değerini döndürür. Aksi takdirde false değerini döndürür.
Ö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ü:
Kod Açıklaması:
- İş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.
ÖZET
- A C++ vektör, bir öğe eklendiğinde veya silindiğinde kendisini otomatik olarak yeniden boyutlandırabilen dinamik bir dizidir.
- Bir vektörün depolanması konteyner tarafından otomatik olarak gerçekleştirilir.
- Bir vektörün elemanları, erişilebilmesi ve daha sonra yineleyiciler kullanılarak geçilebilmesi için bitişik depolamada saklanır.
- Yeni verilerin bir vektöre eklenmesi vektörün sonunda yapılır.
- Verilerin bir vektöre eklenmesi diferansiyel bir zaman alır.
- Bir vektörden bir elemanın çıkarılması sabit zaman alır.
- Başlangıçta bir öğenin eklenmesi veya silinmesi doğrusal zaman alır.
- Sürekli olarak değişen veri öğeleriyle uğraşırken vektörler kullanılmalıdır.
- Ayrıca başlamadan önce verinin boyutu bilinmiyorsa vektörleri kullanabilirsiniz.