Vektor u standardnoj biblioteci predložaka C ++ (STL) s primjerom

Što je C ++ vektor?

DO C ++ VEKTOR je dinamički niz sposoban automatski promijeniti veličinu. Promjena veličine događa se nakon što je element dodan ili izbrisan iz vektora. Spremnik se automatski rukuje spremnikom. Elementi vektora pohranjeni su u susjednoj pohrani. To omogućuje programerima C ++ pristup i prolazak kroz vektorske elemente pomoću iteratora.

Umetanje novih podataka u vektor vrši se na njegovu kraju. Za to je potrebno različito vrijeme. Za uklanjanje elementa iz vektora potrebno je stalno vrijeme. Razlog je taj što nema potrebe za promjenom veličine vektora. Umetanje ili brisanje elementa na početku vektora traje linearno vrijeme.

U ovom C ++ vodiču naučit ćete:

Kada koristiti vektor?

C ++ vektor treba koristiti u sljedećim okolnostima:

  • Kada se bavite elementima podataka koji se dosljedno mijenjaju.
  • Ako veličina podataka nije poznata prije početka, vektor neće zahtijevati da postavite maksimalnu veličinu spremnika.

Kako inicijalizirati vektore u C ++

Sintaksa vektora u C ++ je: | _+_ |

  • Kao što je gore prikazano, počinjemo s ključnom riječi vector.
  • Tip podataka je tip podataka elemenata koji se spremaju u vektor.
  • Naziv je naziv vektora ili elemenata podataka.
  • Stavke označavaju broj elemenata za podatke vektora. Ovaj parametar nije obavezan.

Iteratori

Svrha iteratora je da nam pomognu pri pristupu elementima koji su pohranjeni u vektoru. To je objekt koji radi poput pokazivača. Evo uobičajenih iteratora koje podržavaju vektori C ++:

  • vector :: begin (): daje iterator koji pokazuje na prvi element vektora.
  • vector :: end (): daje iterator koji upućuje na element vektora prošli kraj.
  • vector :: cbegin (): isto je što i vector :: begin (), ali nema mogućnost mijenjanja elemenata.
  • vector :: cend (): isto je što i vector :: end () ali ne može mijenjati vektorske elemente.

Modifikatori

Modifikatori se koriste za promjenu značenja navedene vrste podataka. Evo uobičajenih modifikatora u C ++:

  • vector :: push_back (): Ovaj modifikator gura elemente sa stražnje strane.
  • vector :: insert (): Za umetanje novih stavki u vektor na određenom mjestu.
  • vektor :: pop_back (): Ovaj modifikator uklanja vektorske elemente sa stražnje strane.
  • vector :: erase (): Koristi se za uklanjanje niza elemenata s navedenog mjesta.
  • vector :: clear (): Uklanja sve vektorske elemente.

Primjer 1

 vector name (items) 

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš kôd. Omogućit će nam čitanje i pisanje na konzolu.
  2. Uključite datoteku zaglavlja vektora u naš kôd. Omogućit će nam rad s vektorima u C ++.
  3. Uključite imenski prostor std kako biste koristili njegove klase i funkcije bez pozivanja.
  4. Pozovite funkciju main () unutar koje treba dodati logiku programa.
  5. {Označava početak tijela funkcije main ().
  6. Deklarirajte vektor s imenom nums za spremanje skupa cijelih brojeva.
  7. Izradite for petlju koja će nam pomoći da ponovimo vektor. Varijabla će nam pomoći da ponovimo vektorske elemente, od 1svdo 5thelementi.
  8. Gurnite elemente u vektorski broj sa stražnje strane. Za svaku iteraciju ovo će dodati trenutnu vrijednost varijable a u vektor, koja je 1 do 5.
  9. Ispišite neki tekst na konzoli
  10. Upotrijebite varijablu iteratora a za ponavljanje po elementima vektorskih brojeva od početka do elementa prošli-kraj. Primijetite da koristimo iteratore vector :: begin () i vector :: end ().
  11. Ispišite vrijednosti na koje ukazuje iteratorska varijabla an na konzoli za svaku iteraciju.
  12. Ispišite neki tekst na konzoli. N je novi znak retka koji pomiče pokazivač na novi redak za ispis s tog mjesta.
  13. Upotrijebite varijablu iteratora za ponavljanje elemenata vektorskih brojeva od početka do elementa prošli kraj. Primijetite da koristimo iteratore vector :: cbegin () i vector :: cend ().
  14. Ispišite vrijednosti na koje ukazuje iteratorska varijabla a na konzoli za svaku iteraciju.
  15. Glavna funkcija trebala bi vratiti vrijednost ako se program uspješno izvodi.
  16. Kraj tijela funkcije main ().

Primjer 2

 #include #include using namespace std; int main() { vector 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 << '
Output from cbegin and cend: '; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << ' '; return 0; } 

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš kôd da biste koristili njezine funkcije.
  2. Uključite datoteku zaglavlja vektora u naš kôd za korištenje njegovih funkcija.
  3. Uključite imenski prostor std za korištenje njegovih klasa bez pozivanja.
  4. Pozovite funkciju main (). Logiku programa treba dodati unutar njegova tijela.
  5. Početak tijela funkcije main ().
  6. Deklarirajte vektor s imenom nums za spremanje nekih cjelobrojnih vrijednosti.
  7. Pohranite 5 elemenata u vektorske brojeve. Svaki od njih ima vrijednost 1.
  8. Ispišite neki tekst na konzoli
  9. Upotrijebite varijablu iteratora a da biste ponavljali elemente vektorskih brojeva.
  10. Ispišite vrijednosti vektorskih brojeva na konzoli za svaku iteraciju.
  11. Dodajte vrijednost 2 na kraj vektorskih brojeva.
  12. Deklarirajte cjelobrojnu varijablu n za spremanje veličine vektorskih brojeva.
  13. Ispišite posljednju vrijednost vektorskih brojeva uz drugi tekst. Trebalo bi vratiti 2.
  14. Uklonite posljednji element iz vektorskih brojeva. 2 će se ukloniti.
  15. Ispišite tekst na konzoli. N pomiče pokazivač na novi redak kako bi tamo ispisao tekst.
  16. Upotrijebite varijablu iteratora a da biste ponavljali elemente vektorskih brojeva.
  17. Ispišite vrijednosti vektorskih brojeva na konzoli za svaku iteraciju.
  18. Umetnite vrijednost 7 na početak vektorskih brojeva.
  19. Ispišite prvu vrijednost vektorskih brojeva uz drugi tekst. Trebalo bi vratiti 7.
  20. Izbrišite sve elemente iz vektorskih brojeva.
  21. Ispišite veličinu vektorskog broja uz drugi tekst nakon brisanja svih sadržaja. Trebalo bi vratiti 0.
  22. Kraj tijela funkcije main ().

Kapacitet

Za određivanje kapaciteta vektora upotrijebite sljedeće funkcije:

  • Veličina () - Vraća broj stavki u vektoru.
  • Max_size () -Vraća najveći broj stavki koje vektor može pohraniti.
  • Kapacitet () –It vraća količinu prostora za pohranu dodijeljenu vektoru.
  • Promijeni veličinu () –It mijenja veličinu spremnika tako da sadrži n stavki. Ako je trenutna veličina vektora veća od n, zadnje će se stavke ukloniti iz vektora. Ako je trenutna veličina vektora manja od n, dodatne stavke bit će dodane na stražnju stranu vektora.
  • Prazno () –i t vraća true ako je vektor prazan, inače, vraća false.

Primjer 3

 #include #include using namespace std; int main() { vector 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 << '
Last element: ' << nums[n - 1]; nums.pop_back(); cout << '
Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.insert(nums.begin(), 7); cout << '
First element: ' << nums[0]; nums.clear(); cout << '
Size after clear(): ' << nums.size(); } 

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš kôd da biste koristili njezinu funkciju.
  2. Uključite datoteku zaglavlja vektora u naš kôd za korištenje njegovih funkcija.
  3. Uključite std imenski prostor u naš kôd da biste koristili njegove klase bez pozivanja.
  4. Pozovite funkciju main (). Logiku programa treba dodati unutar tijela ove funkcije.
  5. Izradite vektor s imenom vector1 za spremanje cijelih brojeva.
  6. Pomoću for petlje stvorite varijablu x s ​​vrijednostima od 1 do 10.
  7. Gurnite vrijednosti varijable x u vektor.
  8. Ispišite veličinu vektora zajedno s ostalim tekstom na konzoli.
  9. Ispišite kapacitet vektora zajedno s ostalim tekstom na konzoli.
  10. Ispišite najveći mogući broj stavki koje vektor može držati pored drugog teksta na konzoli.
  11. Promijenite veličinu vektora da zadrži samo 5 elemenata.
  12. Ispišite novu veličinu vektora uz drugi tekst.
  13. Provjerite nije li vektor prazan.
  14. Ispišite tekst na konzoli ako vektor nije prazan.
  15. Pomoću naredbe else navedite što učiniti ako je vektor prazan.
  16. Tekst za ispis na konzoli ako je vektor prazan.
  17. Nakon uspješnog završetka program mora vratiti vrijednost.
  18. Kraj tijela glavne () funkcije.

Sažetak:

  • C ++ vektor dinamički je niz sposoban automatski promijeniti veličinu kada se element doda ili izbriše iz njega.
  • Spremnikom za vektor upravlja automatski spremnik.
  • Elementi vektora pohranjuju se u susjednu memoriju kako bi im se pristupilo, a zatim i prošlo pomoću iteratora.
  • Umetanje novih podataka u vektor vrši se na njegovu kraju.
  • Umetanje podataka u vektor traje različito vrijeme.
  • Za uklanjanje elementa iz vektora potrebno je stalno vrijeme.
  • Za umetanje ili brisanje elementa na početku potrebno je linearno vrijeme.
  • Vektore treba koristiti pri radu s elementima podataka koji se dosljedno mijenjaju.
  • Također, možete koristiti vektore ako veličina podataka nije poznata prije početka.