Vektoros var saglabāt vairākas datu vērtības, piemēram, masīvus, taču tajos var saglabāt tikai objektu atsauces, nevis primitīvus datu tipus. Tie saglabā objekta atsauci nozīmē, ka tie norāda uz objektiem, kas satur datus, nevis tos saglabā. Atšķirībā no masīva, vektoriem nav jābūt inicializētiem ar izmēru. Tiem ir iespēja pielāgoties atbilstoši objektu atsauču skaitam, kas ir iespējams, jo konteiners to glabāšanu apstrādā automātiski. Konteinerā tiks saglabāta piešķiršanas iekšējā kopija, kas tiek izmantota, lai piešķirtu krātuvi visa mūža garumā. Vektorus var atrast un šķērsot, izmantojot iteratorus, tāpēc tie tiek novietoti blakus esošajā krātuvē. Vektoram ir arī drošības līdzekļi, kas atšķirībā no Array pasargā programmas no avārijām. Mēs varam piešķirt rezerves vietu vektoram, bet ne masīviem. Masīvs nav klase, bet vektors ir klase. Vektoros elementus var dzēst, bet ne masīvos.
Ar vecāku “Kolekcijas klase” vektors tiek nosūtīts veidnes klases veidā. Masīvs ir zemāka līmeņa datu struktūra ar to specifiskajām īpašībām. Vektoriem ir funkcijas un konstruktori; tie nav balstīti uz indeksu. Tie ir pretstats masīviem, kas ir uz indeksu balstītas datu struktūras. Šeit pirmajam elementam tiek nodrošināta zemākā adrese, bet pēdējam elementam tiek sniegta augstākā adrese. Vektoru izmanto objekta ievietošanai un dzēšanai, savukārt masīvus izmanto, lai bieži piekļūtu objektiem. Masīvi ir atmiņu taupošas datu struktūras, savukārt Vector apmaiņā izmanto daudz vairāk atmiņas, lai pārvaldītu krātuvi un dinamiski augtu. Vector aizņem vairāk laika, lai piekļūtu elementiem, bet tas neattiecas uz masīviem.
Ir četri veidi, kā inicializēt a vektors C++ valodā :
- Ievadot vērtības pa vienam
- Izmantojot pārslogotu vektoru klases konstruktoru
- Ar masīvu palīdzību
- Izmantojot citu inicializētu vektoru
Ievadot vērtības pa vienam -
Visus vektora elementus var ievietot pa vienam, izmantojot vektoru klases metodi “push_back”.
Algoritms
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.'
Kods -
#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();>
Kods -
#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();>
Ar masīvu palīdzību -
Mēs nododam masīvu vektoru klases konstruktoram. Masīvs satur elementus, kas aizpildīs vektoru.
Algoritms -
Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End.
Kods -
#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();>
Izmantojot citu inicializētu vektoru -
Šeit mums ir jānodod inicializēta vektora sākuma () un end () iteratori vektoru klases konstruktoram. Pēc tam inicializējam jaunu vektoru un aizpildām to ar veco vektoru.
Algoritms -
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.
Kods -
#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();>