Vektorius gali saugoti kelias duomenų reikšmes, pvz., masyvus, tačiau juose galima saugoti tik objektų nuorodas, o ne primityvius duomenų tipus. Jie saugo objekto nuorodą reiškia, kad jie nurodo objektus, kuriuose yra duomenų, o ne juos saugo. Skirtingai nuo masyvo, vektorių nereikia inicijuoti pagal dydį. Juos galima lanksčiai reguliuoti pagal objektų nuorodų skaičių, o tai įmanoma, nes konteineris jų saugojimą tvarko automatiškai. Sudėtiniame rodinyje bus saugoma vidinė paskirstymo kopija, kuri naudojama saugyklai paskirstyti visą gyvenimą. Vektorius galima rasti ir pervažiuoti naudojant iteratorius, todėl jie yra gretimose saugyklose. „Vector“ taip pat turi saugos funkcijų, kurios apsaugo programas nuo strigimo, skirtingai nei „Array“. Mes galime suteikti rezervinę erdvę vektoriui, bet ne masyvams. Masyvas nėra klasė, o vektorius yra klasė. Vektoryje elementus galima ištrinti, bet ne masyvuose.
Naudojant pirminę „Kolekcijos klasę“, vektorius siunčiamas šablono klasės forma. Masyvas yra žemesnio lygio duomenų struktūra su specifinėmis jų savybėmis. Vektoriai turi funkcijas ir konstruktorius; jie nėra pagrįsti indeksu. Jie yra priešingi masyvams, kurie yra indeksu pagrįstos duomenų struktūros. Čia pirmam elementui suteikiamas mažiausias adresas, o paskutiniam elementui – didžiausias. Vektorius naudojamas objektui įterpti ir ištrinti, o masyvai naudojami dažnai prieiti prie objektų. Masyvai yra atmintį taupančios duomenų struktūros, o „Vector“ naudoja daug daugiau atminties, kad galėtų valdyti saugyklą ir dinamiškai augti. Vektoriui reikia daugiau laiko pasiekti elementus, tačiau tai netaikoma masyvams.
Yra keturi būdai inicijuoti a vektorius C++ kalboje :
- Įvesdami reikšmes po vieną
- Naudojant perkrautą vektorių klasės konstruktorių
- Masyvų pagalba
- Naudojant kitą inicijuotą vektorių
Įvesdami reikšmes po vieną -
Visi vektoriaus elementai gali būti įterpti po vieną, naudojant vektoriaus klasės metodą „push_back“.
Algoritmas
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.'
Kodas -
#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();>
Kodas -
#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();>
Masyvų pagalba -
Perduodame masyvą vektorių klasės konstruktoriui. Masyve yra elementai, kurie užpildys vektorių.
Algoritmas -
Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End.
Kodas -
#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();>
Naudojant kitą inicijuotą vektorių -
Čia turime perduoti inicijuoto vektoriaus start () ir end () iteratorius vektorių klasės konstruktoriui. Tada inicijuojame naują vektorių ir užpildome jį senuoju vektoriumi.
Algoritmas -
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.
Kodas -
#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();>