Bir vektör, diziler gibi birden fazla veri değerini depolayabilir, ancak yalnızca nesne referanslarını depolayabilir, ilkel veri türlerini depolayamaz. Bir nesnenin referansını saklarlar; bu, verileri depolamak yerine içeren nesneleri işaret ettikleri anlamına gelir. Bir diziden farklı olarak vektörlerin boyutla başlatılması gerekmez. Nesne referanslarının sayısına göre ayarlama yapma esnekliğine sahiptirler; bu, depolanmalarının konteyner tarafından otomatik olarak gerçekleştirilmesi nedeniyle mümkündür. Kapsayıcı, depolamayı ömür boyu tahsis etmek için kullanılan tahsisin dahili bir kopyasını tutacaktır. Vektörler yineleyiciler kullanılarak konumlandırılabilir ve üzerinde gezinilebilir, böylece bitişik depolamaya yerleştirilirler. Vector, Array'den farklı olarak programların çökmesini önleyen güvenlik özelliklerine de sahiptir. Yedek alanı vektöre verebiliriz ama dizilere veremeyiz. Dizi bir sınıf değildir ancak vektör bir sınıftır. Vektörde öğeler silinebilir ancak dizilerde silinemez.
Ebeveyn 'Collection class' ile vektör bir şablon sınıfı şeklinde gönderilir. Dizi, kendine özgü özelliklere sahip alt düzey veri yapısıdır. Vektörlerin işlevleri ve yapıcıları vardır; indeks tabanlı değildirler. Dizin tabanlı veri yapıları olan Dizilerin tam tersidirler. Burada en düşük adres birinci elemana, en yüksek adres ise son elemana verilmektedir. Vektör bir nesnenin eklenmesi ve silinmesi için kullanılırken, Diziler nesnelere sık erişim için kullanılır. Diziler bellekten tasarruf sağlayan veri yapılarıdır; Vector ise depolamayı yönetmek ve dinamik olarak büyümek için çok daha fazla bellek kullanır. Vektörün öğelere erişmesi daha fazla zaman alır ancak Diziler için durum böyle değildir.
Bir başlatmanın dört yolu vardır C++'da vektör :
- Değerleri tek tek girerek
- Vektör sınıfının aşırı yüklenmiş bir yapıcısını kullanarak
- Diziler yardımıyla
- Başka bir başlatılmış vektör kullanarak
Değerleri tek tek girerek -
Bir vektördeki tüm öğeler, 'Push_back' vektör sınıfı yöntemi kullanılarak tek tek eklenebilir.
Algoritma
Begin Declare v of vector type. Then we call push_back() function. This is done to insert values into vector v. Then we print 'Vector elements: '. ' for (int a: v) print all the elements of variable a.'
Kod -
#include #include using namespace std; int main() { vector vec; vec.push_back(1); vec.push_back(2); vec.push_back(3); vec.push_back(4); vec.push_back(5); vec.push_back(6); vec.push_back(7); vec.push_back(8); vec.push_back(9); vec.push_back(101); for (int i = 0; i <vec.size(); i++) { cout << vec[i] ' '; } return 0; < pre> <p> <strong>Output</strong> </p> <img src="//techcodeview.com/img/c-tutorial/62/initialize-vector-c.webp" alt="Initialize Vector in C++"> <h3>Using an overloaded constructor -</h3> <p>When a vector has multiple elements with the same values, then we use this method.</p> <p>By using an overloaded constructor of the vector class -</p> <p>This method is mainly used when a vector is filled with multiple elements with the same value.</p> <p> <strong>Algorithm</strong> </p> <pre> Begin First, we initialize a variable say 's'. Then we have to create a vector say 'v' with size's'. Then we initialize vector v1. Then initialize v2 by v1. Then we print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { int elements = 12; vector vec(elements, 8); for (int i = 0; i <vec.size(); i++) { cout << vec[i] ' '; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 8 8 8 8 8 8 8 8 8 8 8 8 </pre> <h3>By the help of arrays -</h3> <p>We pass an array to the constructor of the vector class. The Array contains the elements which will fill the vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] ' '; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] ' '; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();></pre></vec.size();></pre></vec.size();>
Kod -
#include #include using namespace std; int main() { int elements = 12; vector vec(elements, 8); for (int i = 0; i <vec.size(); i++) { cout << vec[i] \' \'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 8 8 8 8 8 8 8 8 8 8 8 8 </pre> <h3>By the help of arrays -</h3> <p>We pass an array to the constructor of the vector class. The Array contains the elements which will fill the vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] \' \'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \' \'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();></pre></vec.size();>
Dizilerin yardımıyla -
Bir diziyi vektör sınıfının yapıcısına iletiyoruz. Dizi, vektörü dolduracak elemanları içerir.
Algoritma -
Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End.
Kod -
#include #include using namespace std; int main() { vector vectr{9,8,7,6,5,4,3,2,1,0}; for (int i = 0; i <vectr.size(); i++) { cout << vectr[i] \' \'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 9 8 7 6 5 4 3 2 1 0 </pre> <h3>Using another initialized vector -</h3> <p>Here, we have to pass the begin() and end() iterators of an initialized vector to a vector class constructor. Then we initialize a new vector and fill it with the old vector.</p> <p> <strong>Algorithm -</strong> </p> <pre> Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End. </pre> <p> <strong>Code -</strong> </p> <pre> #include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \' \'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();></pre></vectr.size();>
Başka bir başlatılmış vektör kullanma -
Burada, başlatılmış bir vektörün begin() ve end() yineleyicilerini bir vektör sınıfı yapıcısına aktarmamız gerekir. Daha sonra yeni bir vektör başlatıyoruz ve onu eski vektörle dolduruyoruz.
Algoritma -
Begin First, we have to create a vector v1. Then, we have to initialize vector v1 by an array. Then we initialize vector v2 by v1. We have to print the elements. End.
Kod -
#include #include using namespace std; int main() { vector vec_1{1,2,3,4,5,6,7,8}; vector vec_2(vec_1.begin(), vec_1.end()); for (int i = 0; i <vec_2.size(); i++) { cout << vec_2[i] \\' \\'; } return 0; < pre> <p> <strong>Output</strong> </p> <pre> 1 2 3 4 5 6 7 8 </pre> <hr></vec_2.size();>