Čo je vektor C ++?
C ++ VECTOR je dynamická pole schopné automaticky upraví sám. Zmena veľkosti nastane po pridaní alebo odstránení prvku z vektora. S úložiskom sa manipuluje automaticky. Prvky vektora sú uložené v súvislom úložisku. To umožňuje programátorom v C ++ prístup a prechádzanie vektorových prvkov pomocou iterátorov.
Vkladanie nových údajov do vektora sa vykonáva na jeho konci. Toto trvá rozdielny čas. Odstránenie prvku z vektora trvá neustále. Dôvod je ten, že nie je potrebné meniť veľkosť vektora. Vloženie alebo vymazanie prvku na začiatku vektora trvá lineárne.
V tomto výučbe pre C ++ sa dozviete:
- Čo je vektor C ++?
- Kedy použiť vektor?
- Ako inicializovať vektory v C ++
- Iterátory
- Modifikátory
- Príklad 1
- Príklad 2
- Kapacita
- Príklad 3
Kedy použiť vektor?
Vektor C ++ by sa mal použiť za nasledujúcich okolností:
- Pri práci s dátovými prvkami, ktoré sa dôsledne menia.
- Ak veľkosť údajov nie je známa pred začiatkom, vektor nebude vyžadovať, aby ste nastavili maximálnu veľkosť kontajnera.
Ako inicializovať vektory v C ++
Syntax vektorov v C ++ je:
vectorname (items)
- Ako je uvedené vyššie, začíname kľúčovým slovom vektor.
- Dátový typ je dátový typ prvkov, ktoré sa majú uložiť vo vektore.
- Názov je názov vektora alebo dátových prvkov.
- Položky označujú počet prvkov pre údaje vektora. Tento parameter je voliteľný.
Iterátory
Účelom iterátorov je pomôcť nám získať prístup k prvkom, ktoré sú uložené vo vektore. Je to objekt, ktorý funguje ako ukazovateľ. Tu sú bežné iterátory podporované vektormi C ++:
- vector :: begin (): dáva iterátor, ktorý ukazuje na prvý prvok vektora.
- vector :: end (): dáva iterátor, ktorý ukazuje na posledný prvok vektora.
- vektor :: cbegin (): je to rovnaké ako s vektorom :: begin (), ale nemá schopnosť upravovať prvky.
- vector :: cend (): je to rovnaké ako vector :: end (), ale nemôže upravovať vektorové prvky.
Modifikátory
Modifikátory sa používajú na zmenu významu zadaného dátového typu. Tu sú bežné modifikátory v C ++:
- vector :: push_back (): Tento modifikátor tlačí prvky zozadu.
- vector :: insert (): Na vkladanie nových položiek do vektora na určenom mieste.
- vector :: pop_back (): Tento modifikátor odstráni vektorové prvky zo zadnej strany.
- vector :: erase (): Používa sa na odstránenie rozsahu prvkov zo zadaného umiestnenia.
- vector :: clear (): Odstráni všetky vektorové prvky.
Príklad 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ýkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte do nášho kódu súbor hlavičky iostream. Umožní nám to čítať z konzoly a zapisovať do nej.
- Zahrňte do nášho kódu vektorový hlavičkový súbor. Umožní nám to pracovať s vektormi v C ++.
- Zahrňte std namespace, aby ste mohli používať jeho triedy a funkcie bez toho, aby ste ich volali.
- Zavolajte funkciu main (), do ktorej by mala byť pridaná logika programu.
- {Označuje začiatok tela funkcie main ().
- Deklarujte vektor s názvom nums na uloženie množiny celých čísel.
- Vytvorte slučku for, ktorá nám pomôže iterovať po vektore. Premenná nám pomôže iterovat cez vektorových prvkov, od 1 st až 5 th prvky.
- Zozadu zatlačte prvky do vektora num. Pri každej iterácii sa týmto do vektora pridá aktuálna hodnota premennej a, ktorá je 1 až 5.
- Vytlačte nejaký text na konzolu
- Pomocou iterátorovej premennej a môžete iterovať nad prvkami vektorových čísel od začiatku do konca. Všimnite si, že používame iterátory vector :: begin () a vector :: end ().
- Na konzolu pre každú iteráciu vytlačte hodnoty, na ktoré ukazuje premenná iterátora an.
- Vytlačte nejaký text na konzolu. \ N je nový riadok, ktorý posúva kurzor na nový riadok a odtiaľ sa bude tlačiť.
- Pomocou iterátorovej premennej môžete iterovať nad prvkami vektorových čísel od začiatku do konca. Všimnite si, že používame iterátory vector :: cbegin () a vector :: cend ().
- Pre každú iteráciu vytlačte na konzolu hodnoty, na ktoré ukazuje premenná iterátora a.
- Hlavná funkcia by mala vrátiť hodnotu, ak je program úspešne spustený.
- Koniec tela hlavnej () funkcie.
Príklad 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ýkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte súbor hlavičky iostream do nášho kódu, aby ste mohli využívať jeho funkcie.
- Zahrňte do nášho kódu vektorový hlavičkový súbor, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte štandardný menný priestor.
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do jeho tela.
- Začiatok tela hlavnej funkcie ().
- Deklarujte vektor s názvom nums na uloženie celočíselných hodnôt.
- Uložte 5 prvkov do vektorových čísel. Každá s hodnotou 1.
- Vytlačte nejaký text na konzolu
- Pomocou iteračnej premennej a môžete iterovať nad prvkami vektorových čísel.
- Vytlačte hodnoty vektorových čísel na konzolu pre každú iteráciu.
- Pridajte hodnotu 2 na koniec vektorových čísel.
- Deklarujte celočíselnú premennú n na uloženie veľkosti vektorových čísel.
- Vytlačte poslednú hodnotu vektorových čísel spolu s iným textom. Mal by vrátiť 2.
- Odstráňte posledný prvok z vektorových čísel. 2 budú odstránené.
- Tlačte text na konzolu. \ N presunie kurzor na nový riadok, aby tam vytlačil text.
- Pomocou iteračnej premennej a môžete iterovať nad prvkami vektorových čísel.
- Vytlačte hodnoty vektorových čísel na konzolu pre každú iteráciu.
- Vložte hodnotu 7 na začiatok vektorových čísel.
- Vytlačte prvú hodnotu vektorových čísel spolu s iným textom. Malo by sa vrátiť 7.
- Vymažte všetky prvky z vektorových čísel.
- Po vyčistení všetkého obsahu vytlačte veľkosť vektora spolu s iným textom. Mala by vrátiť 0.
- Koniec tela hlavnej () funkcie.
Kapacita
Na určenie kapacity vektora použite nasledujúce funkcie:
- Veľkosť () - Vráti počet položiek vo vektore.
- Max_size () - Vráti najvyšší počet položiek, ktoré môže vektor uložiť.
- Capacity () - Vráti množstvo úložného priestoru prideleného vektoru.
- Resize () - Zmení veľkosť kontajnera tak, aby obsahoval n položiek. Ak je aktuálna veľkosť vektora väčšia ako n, zadné položky sa z vektora odstránia. Ak je aktuálna veľkosť vektora menšia ako n, na jeho zadnú časť sa pridajú ďalšie položky.
- Empty () -i t vráti true, ak je vektor prázdny, inak vráti false.
Príklad 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ýkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte hlavičkový súbor iostream do nášho kódu, aby ste mohli používať jeho funkciu.
- Zahrňte do nášho kódu vektorový hlavičkový súbor, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte do nášho kódu std namespace.
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do tela tejto funkcie.
- Vytvorte vektor s názvom vector1 na ukladanie celých čísel.
- Pomocou slučky for vytvorte premennú x s hodnotami od 1 do 10.
- Zatlačte hodnoty premennej x do vektora.
- Vytlačte veľkosť vektora spolu s ďalším textom na konzole.
- Vytlačte kapacitu vektora spolu s ďalším textom na konzole.
- Vytlačte maximálny počet položiek, ktoré môže vektor obsahovať, spolu s iným textom na konzole.
- Zmeňte veľkosť vektora tak, aby obsahoval iba 5 prvkov.
- Vytlačte novú veľkosť vektora spolu s iným textom.
- Skontrolujte, či vektor nie je prázdny.
- Ak vektor nie je prázdny, vytlačte text na konzolu.
- Pomocou príkazu else môžete určiť, čo robiť, ak je vektor prázdny.
- Text, ktorý sa má vytlačiť na konzole, ak je vektor prázdny.
- Po úspešnom dokončení musí program vrátiť hodnotu.
- Koniec hlavného () funkčného tela.
Zhrnutie:
- Vektor v C ++ je dynamické pole, ktoré je schopné automaticky sa meniť veľkosť, keď je z neho pridaný alebo odstránený prvok.
- S úložiskom vektora sa manipuluje automaticky.
- Prvky vektora sú uložené v súvislom úložisku, aby k nim bolo možné získať prístup a potom ich prechádzať pomocou iterátorov.
- Vkladanie nových údajov do vektora sa vykonáva na jeho konci.
- Vkladanie údajov do vektora trvá rozdielový čas.
- Odstránenie prvku z vektora trvá neustále.
- Vloženie alebo vymazanie prvku na začiatku trvá lineárne.
- Pri práci s dátovými prvkami, ktoré sa dôsledne menia, by sa mali používať vektory.
- Môžete tiež použiť vektory, ak veľkosť údajov nie je známa pred začiatkom.