logo

Inicijalizirajte Vector u C++

Vektor može pohraniti više vrijednosti podataka poput nizova, ali oni mogu pohraniti samo reference na objekte, a ne primitivne tipove podataka. Oni pohranjuju referencu objekta što znači da pokazuju na objekte koji sadrže podatke, umjesto da ih pohranjuju. Za razliku od niza, vektori ne moraju biti inicijalizirani veličinom. Imaju fleksibilnost prilagodbe prema broju referenci na objekte, što je moguće jer spremnik automatski upravlja njihovom pohranom. Spremnik će zadržati internu kopiju alloc-a, koja se koristi za dodjelu pohrane za cijeli život. Vektori se mogu locirati i prelaziti pomoću iteratora, tako da se smještaju u kontinuiranu pohranu. Vector također ima sigurnosne značajke, koje spašavaju programe od rušenja, za razliku od Arraya. Rezervni prostor možemo dati vektoru, ali ne i nizovima. Niz nije klasa, ali vektor je klasa. U vektoru se elementi mogu brisati, ali ne i u nizovima.

S nadređenom 'Collection class' vektor se šalje u obliku predloške klase. Niz je struktura podataka niže razine sa svojim specifičnim svojstvima. Vektori imaju funkcije i konstruktore; ne temelje se na indeksu. Oni su suprotni nizovima, koji su podatkovne strukture temeljene na indeksu. Ovdje je najniža adresa dana prvom elementu, a najviša adresa zadnjem elementu. Vektor se koristi za umetanje i brisanje objekta, dok se nizovi koriste za učestali pristup objektima. Nizovi su podatkovne strukture koje štede memoriju, dok Vector koristi mnogo više memorije u zamjenu za upravljanje pohranom i dinamičan rast. Vektoru treba više vremena za pristup elementima, ali to nije slučaj s nizovima.

Postoje četiri načina inicijalizacije a vektor u C++ :

  • Unosom vrijednosti jednu po jednu
  • Korištenjem preopterećenog konstruktora vektorske klase
  • Uz pomoć nizova
  • Korištenjem drugog inicijaliziranog vektora

Unosom vrijednosti jednu po jednu -

Svi elementi u vektoru mogu se umetnuti jedan po jedan pomoću metode vektorske klase 'push_back'.

Algoritam

 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.' 

Šifra -

 #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 &apos;s&apos;. Then we have to create a vector say &apos;v&apos; with size&apos;s&apos;. 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();>

Šifra -

 #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();>

Uz pomoć nizova -

Konstruktoru vektorske klase prosljeđujemo niz. Array sadrži elemente koji će ispuniti vektor.

Algoritam -

 Begin First, we create a vector say v. Then, we initialize the vector. In the end, print the elements. End. 

Šifra -

 #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();>

Korištenje drugog inicijaliziranog vektora -

Ovdje moramo proslijediti iteratore begin() i end() inicijaliziranog vektora konstruktoru vektorske klase. Zatim inicijaliziramo novi vektor i ispunimo ga starim vektorom.

Algoritam -

 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. 

Šifra -

 #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();>