Vektor C ++ standardmalliteegis (STL) koos näitega

Lang L: none (table-of-contents):

Anonim

Mis on C ++ vektor?

C ++ VECTOR on dünaamiline massiivi võimeline suuruse muutmisel end automaatselt. Suuruse muutmine toimub pärast elemendi lisamist või vektorist kustutamist. Konteiner haldab ladustamist automaatselt. Vektori elemendid salvestatakse külgnevas hoius. See võimaldab C ++ programmeerijatel pääseda ligi iteraatorite abil vektorelementidele ja läbida neid.

Uute andmete sisestamine vektorisse toimub selle lõpus. Selleks kulub erinev aeg. Elemendi eemaldamine vektorist võtab pidevalt aega. Põhjus on selles, et vektori suurust ei ole vaja muuta. Elemendi sisestamine või kustutamine vektori alguses võtab lineaarse aja.

Selles C ++ õpetuses saate teada:

  • Mis on C ++ vektor?
  • Millal vektorit kasutada?
  • Kuidas initsialiseerida vektorid C ++ -s
  • Iteraatorid
  • Modifikaatorid
  • Näide 1
  • Näide 2
  • Mahutavus
  • Näide 3

Millal vektorit kasutada?

C ++ vektorit tuleks kasutada järgmistel juhtudel:

  • Järjekindlalt muutuvate andmeelementidega tegelemisel.
  • Kui andmete suurus pole enne alustamist teada, ei nõua vektor, et määraksite konteineri maksimaalse suuruse.

Kuidas initsialiseerida vektorid C ++ -s

C ++ vektorite süntaks on:

vector  name (items)
  • Nagu eespool näidatud, alustame vektorimärksõnast.
  • Andmetüüp on vektorisse salvestatavate elementide andmetüüp.
  • Nimi on vektori või andmeelementide nimi.
  • Elemendid tähistavad vektori andmete elementide arvu. See parameeter on valikuline.

Iteraatorid

Kordajate eesmärk on aidata meil pääseda juurde vektorisse salvestatud elementidele. See on objekt, mis töötab nagu osuti. Siin on C ++ vektorite toetatud tavalised iteraatorid:

  • vektor :: begin (): see annab iteraatori, mis osutab vektori esimesele elemendile.
  • vector :: end (): see annab iteraatori, mis osutab vektori mineviku lõpu elemendile.
  • vektor :: cbegin (): see on sama mis vektor :: begin (), kuid sellel pole võimalust elemente muuta.
  • vector :: cend (): see on sama mis vector :: end (), kuid ei saa vektorelemente muuta.

Modifikaatorid

Modifikaatoreid kasutatakse määratud andmetüübi tähenduse muutmiseks. Siin on C ++ levinumad modifikaatorid:

  • vector :: push_back (): see modifikaator lükkab elemendid tagant.
  • vector :: insert (): Uute üksuste sisestamiseks vektorisse määratud kohas.
  • vector :: pop_back (): see modifikaator eemaldab vektorelemendid tagantpoolt.
  • vector :: erase (): Seda kasutatakse elementide vahemiku eemaldamiseks määratud asukohast.
  • vector :: clear (): See eemaldab kõik vektorelemendid.

Näide 1

#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 << "\nOutput from cbegin and cend: ";for (auto a = nums.cbegin(); a != nums.cend(); ++a)cout << *a << " ";return 0;}

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Kaasake iostreami päisefail meie koodi. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
  2. Kaasa vektor päisefail meie koodi. See võimaldab meil töötada C ++ vektoritega.
  3. Kaasa standardne nimeruum, et kasutada selle klasse ja funktsioone seda kutsumata.
  4. Kutsuge funktsiooni main (), mille sisse tuleks programmi loogika lisada.
  5. {Tähistab põhifunktsiooni () keha algust.
  6. Deklareerige täisarvude hulga salvestamiseks vektor nimega nums.
  7. Looge for-silmus, mis aitab meil vektorit itereerida. Muutuva aitab meil Kerrata üle vektorielementide alates 1. silmus kuni 5 th elemente.
  8. Lükake elemendid tagantpoolt vektorisse num. Iga iteratsiooni korral lisab see vektorisse muutuja a praeguse väärtuse, mis on 1 kuni 5.
  9. Printige konsoolile tekst
  10. Kasutage iteraatori muutujat a vektorite nummide elementide algusest kuni lõppu lõppu itereerimiseks. Pange tähele, et kasutame iteraatoreid vektor :: start () ja vector :: end ().
  11. Prindige iteratsioonimuutuja a poolt osutatavad väärtused konsoolile iga iteratsiooni jaoks.
  12. Printige konsoolile tekst. \ N on uus rea märk, mis liigutab kursori uuele reale, et sealt printida.
  13. Kasutage iteraatori muutujat vektorite nummide elementide algusest kuni lõpuni lõppu itereerimiseks. Pange tähele, et kasutame iteraatoreid vektorid :: cbegin () ja vektor :: cend ().
  14. Printige iteratsioonimuutuja a poolt osutatavad väärtused konsoolile iga iteratsiooni jaoks.
  15. Kui programm töötab edukalt, peaks põhifunktsioon tagastama väärtuse.
  16. Põhifunktsiooni () keha lõpp.

Näide 2

#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 << "\nLast element: " << nums[n - 1];nums.pop_back();cout << "\nVector contents: ";for (int a = 0; a < nums.size(); a++)cout << nums[a] << " ";nums.insert(nums.begin(), 7);cout << "\nFirst element: " << nums[0];nums.clear();cout << "\nSize after clear(): " << nums.size();}

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Lisage iostreami päisefail meie koodi, et selle funktsioone kasutada.
  2. Lisage vektorfunktsiooni päisefail meie koodi, et selle funktsioone kasutada.
  3. Kaasa standardne nimeruum, et kasutada selle klasse ilma seda kutsumata.
  4. Helistage funktsioonile main (). Programmi loogika tuleks lisada selle kehasse.
  5. Põhifunktsiooni () keha algus.
  6. Kuulutage vektor, mille nimi on nums, et salvestada mõned täisarvu väärtused.
  7. Salvestage vektornummudesse 5 elementi. Igaüks väärtusega 1.
  8. Printige konsoolile tekst
  9. Kasutage iteraatori muutujat a vektornummude elementide kordamiseks.
  10. Trükkige konsoolile iga iteratsiooni vektorarvude väärtused.
  11. Lisage väärtus 2 vektorite arvude lõppu.
  12. Deklareerige täisarv muutuja n vektornummude suuruse salvestamiseks.
  13. Trükkige vektornummude viimane väärtus muu teksti kõrvale. See peaks tagastama 2.
  14. Eemaldage viimane element vektornummudest. Kaks eemaldatakse.
  15. Trükkige tekst konsoolile. \ N liigutab kursori uuele reale, et tekst sinna printida.
  16. Kasutage iteraatori muutujat a vektornummude elementide kordamiseks.
  17. Trükkige konsoolile iga iteratsiooni vektorarvude väärtused.
  18. Sisestage väärtus 7 vektornummude algusesse.
  19. Trükkige vektornummude esimene väärtus muu teksti kõrvale. See peaks tagastama 7.
  20. Kustutage vektornummudest kõik elemendid.
  21. Pärast kogu sisu tühjendamist printige vektori numbri suurus muu teksti kõrvale. See peaks tagastama 0.
  22. Põhifunktsiooni () keha lõpp.

Mahutavus

Vektori mahu määramiseks kasutage järgmisi funktsioone:

  • Suurus () - tagastab vektoris olevate üksuste arvu.
  • Max_size () - tagastab suurima arvu üksusi, mida vektor saab salvestada.
  • Maht () - tagastab vektorile eraldatud salvestusruumi hulga.
  • Suuruse muutmine () - konteineri suurus muutub n-i üksuse jaoks. Kui vektori praegune suurus on suurem kui n, eemaldatakse tagumised elemendid vektorist. Kui vektori praegune suurus on väiksem kui n, lisatakse vektori tagaküljele täiendavaid elemente.
  • Tühi () -i t tagastab tõese, kui vektor on tühi, muidu tagastab vale.

Näide 3

#include #include using namespace std;int main() {vector vector1;for (int x = 1; x <= 10; x++)vector1.push_back(x);cout << "Vector size: " << vector1.size()<< endl;cout << "Vector capacity: " << vector1.capacity() << endl;cout << "Maximum size of vector: " << vector1.max_size()<< endl;vector1.resize(5);cout << "Vector size after resizing: " << vector1.size() << endl;if (vector1.empty() == false)cout << "Vector is not empty"<

Väljund:

Siin on ekraanipilt koodist:

Koodi selgitus:

  1. Selle funktsiooni kasutamiseks lisage iostreami päisefail meie koodi.
  2. Lisage vektorfunktsiooni päisefail meie koodi, et selle funktsioone kasutada.
  3. Kaasake standardnimeruum meie koodi, et kasutada selle klasse ilma seda kutsumata.
  4. Helistage funktsioonile main (). Selle funktsiooni kehasse tuleks lisada programmiloogika.
  5. Loo täisarvude salvestamiseks vektor nimega vector1.
  6. Kasutage a for loopi, et luua muutuja x väärtustega 1 kuni 10.
  7. Lükake muutuja x väärtused vektorisse.
  8. Printige vektori suurus konsooli muu teksti kõrvale.
  9. Printige vektori maht konsooli muu teksti kõrvale.
  10. Trükkige maksimaalselt üksuste arv, mida vektor mahutab konsooli muu teksti kõrvale.
  11. Muutke vektori suurust, et hoida ainult 5 elementi.
  12. Printige vektori uus suurus muu teksti kõrvale.
  13. Kontrollige, kas vektor pole tühi.
  14. Kui vektor pole tühi, printige konsoolile tekst.
  15. Kasutage muud lauset, et öelda, mida teha, kui vektor on tühi.
  16. Konsoolile printimiseks tekst, kui vektor on tühi.
  17. Eduka lõpetamise korral peab programm tagastama väärtuse.
  18. Põhifunktsiooni () keha lõpp.

Kokkuvõte:

  • C ++ vektor on dünaamiline massiiv, mis on võimeline automaatselt suurust muutma, kui element sellele lisatakse või kustutatakse.
  • Konteiner haldab vektori salvestust automaatselt.
  • Vektori elemendid salvestatakse külgnevas hoidlas, et neile juurde pääseda ja seejärel iteraatorite abil läbida.
  • Uute andmete sisestamine vektorisse toimub selle lõpus.
  • Andmete sisestamine vektorisse võtab erineva aja.
  • Elemendi eemaldamine vektorist võtab pidevalt aega.
  • Elemendi sisestamine või kustutamine alguses võtab lineaarse aja.
  • Püsivalt muutuvate andmeelementide käsitlemisel tuleks kasutada vektoreid.
  • Samuti võite kasutada vektoreid, kui andmete suurus pole enne alustamist teada.