Vectorul vectorului este primul contact cu vectorul, c pentru începători

  • Vectorii fac parte din STL și se referă la containerele secvențiale.
  • Containerele secvențiale sunt colecții ordonate în care fiecare element ocupă o anumită poziție.
    Conform standardului C ++, orice container trebuie să conțină metodele begin (), end (), size (), max_size (), empty () și swap ().

Un vector este aproape la fel ca o matrice, elementele sale pot fi de asemenea accesate ca elemente ale unei matrice. Dar vectorul are câteva avantaje. Nu este nevoie să monitorizați în mod specific dimensiunea, deoarece vectorul cunoaște dimensiunea sa. Pentru a schimba dimensiunea, ștergeți sau adăugați elemente la timpul de execuție

Pentru a utiliza un vector în program, trebuie să conectați directiva vectorială și să specificați spațiul de nume std utilizat

Toate Acest lucru este mai ușor pentru cei care sunt familiarizați cu matrice

Uităm la similitudinea vectorilor de procesare și a matricelor

#include // Conectăm directiva vectorială

folosind namespace std; // Folosim spațiul de nume std

vector v (10); // Declare un vector în zece elemente de tip int

pentru (int i = 0; i <10 ; i ++ ) v [ i ] = i + 1 ; //Записали в вектор числа 1,2,3. 10

pentru (int i = 0; i <10 ; i ++ ) cout <

int arr [10]; // Declare o matrice de zece elemente de tip int

pentru (int i = 0; i <10 ; i ++ ) arr [ i ] = i + 1 ; //Записали в массив числа 1,2,3. 10

pentru (int i = 0; i <10 ; i ++ ) cout <

Cred că cineva care a studiat deja elementele de bază, înțelege imediat ce este aici pentru ce.

===================
Tehnici vectoriale de bază
push_back (element) - adăugați un element la sfârșitul vectorului
pop_back (element) - ștergeți ultimul element al vectorului
insera (***) - trei opțiuni (metoda de repornire) în care inserția fie în regiunea vector, primul parametru predeterminat de inserție iterators poziție indică container sau cantitatea și containerul, sau o pereche de orice iterators indicând în care poziția unui alt container rămase ia datele.
șterge (iterator sau iterator de la, și la) - elimină un element sau o secvență de elemente dintr-un vector
begin () - Returnează un iterator care indică începutul colecției.
end () returnează un iterator care indică sfârșitul colecției. În acest caz, nu indică cel mai recent element, ci elementul imaginar din spatele ultimului element.
la metoda (index) - acces, la elementele colecției, spre deosebire de operatorul [], verifică ieșirea din limitele colecției și, în acest caz, excepția este aruncată.
clear () - șterge toate elementele colecției, dacă conține obiecte de clasă, le numește destructori. Și dacă există indicii pentru obiecte, atunci veți avea o scurgere de memorie (scurgeri de memorie =)), astfel încât nimeni nu va cauza o ștergere pentru tine.
===================

Am început să cunosc vectorii din prima și a doua metodă push_back și pop_back.
Iată codul programului cu greșeala mea mică

Că o astfel de inițializare a vectorilor a funcționat, este posibil ca compilatorul să pună un anumit pavilion în setări. Unde este acest pavilion nu știu, așa că nu întreba. Am de-a face cu o gamă suplimentară.

Nu cred că ar trebui să pictez fiecare metodă. Pentru mine (poate în mod greșit) se pare că cel care reprezintă acea matrice, care caută ceea ce a fost deja descris, va înțelege cu ușurință ce este

În plus, este logic să vorbim despre alte caracteristici ale vectorilor. Una dintre aceste caracteristici este că vectorul poate extinde cantitatea de memorie atunci când adaugă elemente, dar niciodată nu o distruge independent. În loc să distrugă memoria alocată, ea lasă această memorie în rezervă. Dacă vectorul de gândire, gândirea lui ar suna astfel: „Și apoi dintr-o dată veni la îndemână, voi fi pentru el (tatal ei), încă o dată a evidenția, ceva care este deja alocat de cost.“ Ie dacă nu o forțați să descopere memoria, atunci cât de mult a fost alocată memoria maximă, rămân multe. Acest lucru se datorează faptului că alocarea operațiunilor de memorie necesită ceva timp, reducând astfel foarte mult eficacitatea programului. Este necesar să se înțeleagă și să se facă distincția între două concepte: Capacitatea și dimensiunea unui vector. Prin capacitate se înțelege vectorul ca elementele de vector pot fi puse în fără alocare de memorie suplimentară, și dimensiunea se referă la cât de multe elemente sunt stocate în vectorul propriu-zis. Pentru a găsi dimensiunea unui vector, utilizați metoda dimensiunii vectoriale. și pentru a cunoaște capacitatea vectorului, se folosește metoda capacității. Trebuie notat faptul că metoda capacității afișează numărul total de elemente și nu câte elemente pot fi adăugate suplimentar fără alocări suplimentare de memorie

Pentru cei care au lucrat cu șiruri de caractere, este mult mai probabil să fie mai ușor de înțeles că înseamnă ceea ce tocmai am scris. De obicei, o anumită cantitate de memorie este alocată unei linii, iar atunci când o linie este ieșită, linia este afișată înainte de caracterul final, dar gunoiul se află în spatele sfârșitului liniei. Aceasta este întreaga linie, inclusiv plasturele de gunoi - este ca și capacitatea unui vector.

Puteți rezerva singură memoria în vector, pentru aceasta folosiți metoda rezervelor.
Un rezultat mic pentru cele de mai sus

Când lucrați cu vectori, trebuie să puteți lucra atât cu memoria cât și cu numărul de elemente vectoriale.

Pentru a elibera memoria rezervată din vector, utilizați un truc cu schimbul de trupe Swap

Articole similare