Vektor sisse C++ Standardmalliteek (STL) koos näitega
⚡ Nutikas kokkuvõte
Vektor sisse C++ on standardmallide teegi dünaamiline massiiv, mis muudab oma suurust automaatselt elementide lisamisel või eemaldamisel, salvestades üksusi külgnevas mälus, et programmeerijad saaksid neile iteraatorite abil juurde pääseda ja neid läbida.

Mis on a C++ Vektor?
A C++ Vektor on dünaamiline massiiv, mis suudab enda suurust automaatselt muuta. Suuruse muutmine toimub pärast elemendi lisamist või vektorist kustutamist. Ladustamist käsitleb konteiner automaatselt. Vektori elemendid salvestatakse külgnevasse salvestusruumi. See võimaldab C++ programmeerijad pääsevad ligi ja läbivad vektorelemente iteraatorite abil.
Uute andmete lisamine vektorisse toimub selle lõpus. See võtab diferentsiaalaja. Elemendi eemaldamine vektorist võtab konstantse aja. Põhjus on selles, et vektori suurust pole vaja muuta. Elemendi lisamine või kustutamine vektori algusesse võtab lineaarse aja.
Enne vektoritega koodi kirjutamist on kasulik teada, millal on need õiged konteinerid, mille poole haarata.
Millal vektorit kasutada?
A C++ vektorit tuleks kasutada järgmistel juhtudel:
- Järjepidevalt muutuvate andmeelementidega tegelemisel.
- Kui andmete suurus pole enne alustamist teada, ei nõua vektor konteineri maksimaalse suuruse määramist.
Kuidas initsialiseerida vektoreid C++
Vektorite süntaks sisse C++ on:
vector <data-type> name (items)
Nagu ülal näidatud, alustame vektori märksõnaga.
- . andmetüüp on vektorisse salvestatavate elementide andmetüüp.
- . nimi on vektori või andmeelementide nimi.
- . kirjed tähistavad vektorandmete elementide arvu. See parameeter on valikuline.
Kui vektor on olemas, pakuvad iteraatorid pointerilaadset viisi selle elementide vahel liikumiseks.
Iteraatorid
Iteraatorite eesmärk on aidata meil pääseda ligi vektoris talletatud elementidele. See on objekt, mis toimib nagu pointer. Siin on levinumad iteraatorid, mida toetab C++ vektorid:
- vektor::begin(): see annab iteraatori, mis osutab vektori esimesele elemendile.
- vektor::lõpp(): see annab iteraatori, mis osutab vektori mineviku-lõpu elemendile.
- vektor::cbegin(): See on sama mis vector::begin(), aga sellel pole elementide muutmise võimalust.
- vektor::cend(): See on sama mis vector::end(), aga ei saa muuta vektori elemente.
Järgmises näites asustatakse vektor ja seejärel käib see läbi nii muudetavate kui ka konstantsete iteraatoritega.
Näiteks 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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 koodi ekraanipilt:
Code Selgitus:
- Lisage meie koodi iostreami päisefail. See võimaldab meil konsoolist lugeda ja sinna kirjutada.
- Kaasake vektori päise fail meie koodi. See võimaldab meil töötada vektoritega C++.
- Kaasake std-nimeruum, et kasutada selle klasse ja funktsioone ilma seda kutsumata.
- Kutsuge välja main() funktsioon, mille sisse tuleks lisada programmi loogika.
- { märgib funktsiooni main() keha algust.
- Täisarvude hulga salvestamiseks deklareerige vektor nimega nums.
- Loo for-tsükkel, mis aitab meil vektorit läbi käia. Muutuja aitab meil vektori elemente läbi käia, 1.-5. elemendini.
- Lükake elemendid tagantpoolt vektori num sisse. Iga iteratsiooni jaoks lisab see vektorisse muutuja a praeguse väärtuse, mis on 1 kuni 5.
- Printige konsoolile teksti.
- Kasutage iteraatori muutujat a, et itereerida vektornumbrite elemente algusest kuni viimase lõpu elemendini. Pange tähele, et me kasutame vektor::begin() ja vektor::end() iteraatoreid.
- Printige iga iteratsiooni jaoks konsoolil väärtused, millele viitab iteraatori muutuja a.
- Printige konsoolile teksti. \n on uus rea märk, mis viib kursori uuele reale, et sealt printida.
- Kasutage iteraatorimuutujat, et itereerida vektori num elementide üle algusest lõpuni. Pange tähele, et me kasutame vector::cbegin() ja vector::cend() iteraatoreid.
- Printige iga iteratsiooni jaoks konsoolil väärtused, millele viitab iteraatori muutuja a.
- Kui programm töötab edukalt, peaks põhifunktsioon tagastama väärtuse.
- Funktsiooni main() keha lõpp.
Modifikaatorid
Modifikaatoreid kasutatakse määratud andmetüübi tähenduse muutmiseks. Siin on levinumad modifikaatorid C++:
- vektor::push_back(): See modifikaator lükkab elemente tagantpoolt.
- vektor::insert(): Uute üksuste lisamiseks vektorisse kindlas kohas.
- vektor::pop_back(): See modifikaator eemaldab vektorelemendid tagaküljelt.
- vektor::kustuta(): Seda kasutatakse elementide hulga eemaldamiseks määratud asukohast.
- vektor::clear(): See eemaldab kõik vektorelemendid.
Järgmises näites rakendatakse neid modifikaatoreid järjestikku, et näha, kuidas vektor muutub.
Näiteks 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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 koodi ekraanipilt:
Code Selgitus:
- Selle funktsioonide kasutamiseks lisage meie koodi iostreami päisefail.
- Selle funktsioonide kasutamiseks lisage meie koodi vektori päisefail.
- Kaasake std-nimeruum, et kasutada selle klasse ilma seda kutsumata.
- Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle kehasse.
- Funktsiooni main() keha algus.
- Mõne täisarvu väärtuse salvestamiseks deklareerige vektor nimega nums.
- Talletage 5 elementi vektornumbrites. Igaühe väärtusega 1.
- Printige konsoolile teksti.
- Kasutage vektornumbrite elementide itereerimiseks iteraatori muutujat a.
- Printige iga iteratsiooni jaoks konsooli vektornumbrite väärtused.
- Lisage väärtus 2 vektornumbrite lõppu.
- Deklareerige täisarvuline muutuja n, et salvestada vektori numbrite suurust.
- Printige vektori numbrite viimane väärtus muu teksti kõrvale. See peaks tagastama 2.
- Eemaldage vektorite numbritest viimane element. 2 eemaldatakse.
- Printige tekst konsoolile. \n viib kursori uuele reale, et trükkida sinna tekst.
- Kasutage vektornumbrite elementide itereerimiseks iteraatori muutujat a.
- Printige iga iteratsiooni jaoks konsooli vektornumbrite väärtused.
- Sisestage väärtus 7 vektori numbrite algusesse.
- Printige vektori numbrite esimene väärtus muu teksti kõrvale. See peaks tagasi tulema 7.
- Kustutage vektori numbritest kõik elemendid.
- Pärast kogu sisu kustutamist printige vektori numbri suurus koos muu tekstiga. See peaks tagastama 0.
- Funktsiooni main() keha lõpp.
Võimsus
Kasutage järgmist funktsioonid Vektori mahutavuse määramiseks:
- Suurus() – See tagastab vektori elementide arvu.
- Max_size() – See tagastab suurima arvu elemente, mida vektor saab salvestada.
- Mahutavus() – See tagastab vektorile eraldatud salvestusruumi hulga.
- Suuruse muutmine() – See muudab konteineri suurust nii, et see sisaldaks n elementi. Kui vektori praegune suurus on suurem kui n, eemaldatakse vektori tagumised elemendid. Kui vektori praegune suurus on väiksem kui n, lisatakse vektori lõppu lisaelemendid.
- Tühi() – tagastab väärtuse „true”, kui vektor on tühi. Vastasel juhul tagastab väärtuse „false”.
See viimane näide annab aru ja kohandab vektori salvestusruumi ülaltoodud mahtuvusfunktsioonide abil.
Näiteks 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Väljund:
Siin on koodi ekraanipilt:
Code Selgitus:
- Selle funktsiooni kasutamiseks lisage meie koodi iostreami päisefail.
- Selle funktsioonide kasutamiseks lisage meie koodi vektori päisefail.
- Lisage meie koodi std nimeruum, et kasutada selle klasse ilma seda kutsumata.
- Kutsuge funktsioon main(). Programmi loogika tuleks lisada selle funktsiooni kehasse.
- Looge täisarvude salvestamiseks vektor nimega vektor1.
- Kasutage tsüklit for, et luua muutuja x väärtustega 1 kuni 10.
- Lükake muutuja x väärtused vektorisse.
- Printige vektori suurus koos muu konsooli tekstiga.
- Printige vektori mahutavus koos muu konsooli tekstiga.
- Printige koos muu konsooli tekstiga maksimaalne arv elemente, mida vektor mahutab.
- Muutke vektori suurust nii, et see mahutaks ainult 5 elementi.
- Printige vektori uus suurus koos muu tekstiga.
- Kontrollige, kas vektor pole tühi.
- Kui vektor pole tühi, printige tekst konsoolile.
- Kasutage käsku else, et öelda, mida teha, kui vektor on tühi.
- Tekst, mis prinditakse konsoolil, kui vektor on tühi.
- Programm peab pärast edukat lõpetamist tagastama väärtuse.
- Funktsiooni main() keha lõpp.





