C++ vektori su dio STL (Standard Template Library). STL je jedna od mnogih dostupnih knjižnica za C++ koje povećavaju učinkovitost, fleksibilnost i performanse aplikacija. Vektori su vrlo korisni i vitalni koncept za svakoga tko želi postati vješti jezik C++.
C++ vektori su u biti spremnici koje možete koristiti za pohranu podataka. Rad s nizovima čine čistim i brzim, tako da je poznavanje upotrebe C++ vektora vrijedna vještina, ako želite razviti C++ aplikaciju. Čitajte dalje dok raspravljamo o svemu što trebate znati o C++ vektorima.
Što su C++ vektori?
C++ vektori su spremnici sekvenci koji su bitna komponenta Standardne biblioteke predložaka. Vektori predstavljaju nizove koji mogu dinamički mijenjati veličinu tijekom izvođenja ako je potrebno.
Za razliku od tradicionalnih nizova, ne morate eksplicitno upravljati dodjelom memorije vektora. Spremnik vektora automatski upravlja svojom memorijom. O C++ vektorima možete razmišljati kao o dinamičkom nizu koji se sam prilagođava nakon dodavanja ili uklanjanja elementa.
Osim toga, vektor poreda svoje elemente uzastopno. To znači da im možete lako pristupiti pomoću pokazivača ili iteratora.
Kako std:: vektor radi
Sada kada ste upoznati što su C++ vektori, morate razumjeti kako funkcioniraju prije nego što ih počnete koristiti u svom kodu.
Povezano: Je li C++ još uvijek relevantan u 2021.?
Kada koristite C++ vektor, on će umetnuti nove elemente na kraju u diferencijalnom vremenu. To je zato što će se u nekim slučajevima vektor morati proširiti kako bi se prilagodio novom elementu. Slično, ako biste izdvojili posljednji element vektora, bilo bi potrebno konstantno vrijeme da vektor ne treba prilagoditi svoju duljinu (veličinu).
Za učinkovito korištenje vektora koristimo iteratore i ugrađene funkcije. Iteratori su pokazivači koji se koriste uz C++ vektore. Oni pojednostavljuju prelazak vektorskog kontejnera. Postoji mnogo različitih vektorskih funkcija, a neke od važnih ćemo pogledati u sljedećem odjeljku.
C++ vektorske funkcije
Pogledajmo neke funkcije iteratora i STL spremnika koje se obično koriste s C++ vektorima:
- početi() vraća pokazivač iteratora koji pokazuje na prvi element vektora.
- kraj() vraća pokazivač iteratora na krajnji položaj vektorskog spremnika.
- rbegin() je kao početi(), ali vam daje obrnuti iterator koji pokazuje na zadnji element u vektoru.
- veličina() vraća broj elemenata pohranjenih u vektoru.
- max_size() vraća maksimalni kapacitet elemenata koje vektorski kontejner može primiti.
- promijeni veličinu (x) promijenit će veličinu vektorskog spremnika tako da može držati x elementi.
- prazan() vraća true ako vektorski spremnik nema elemenata.
- odgurnuti() umeće novi element u vektor na kraju.
- pop_back() izdvaja element s kraja vektorskog spremnika.
- umetnuti() omogućuje dodavanje elementa vektoru na određenoj poziciji.
Primjer vektora C++
Korištenje vektora u C++ čini kodiranje s nizovima fleksibilnim i brzim. Pogledajmo neki primjer koda koji koristi C++ vektore.
#uključiti
#uključiti
korištenje imenskog prostora std;
void main()
{
vektor arr;
// push_back za dodavanje elemenata na kraj našeg spremnika
arr.push_back (10);
arr.push_back (5);
arr.push_back (20);
// vektor sada sadrži [10,5,20]
// koristi se begin() iterator za prelazak preko spremnika do end() pokazivača
cout << "početak() i kraj() iteratori: ";
za (auto j = arr.begin(); j != arr.end(); j++)
{
cout << *j << ' ';
}
// Očekivani učinak: 10 5 20
// rbegin() i rend() koji se koriste za preokret pomicanja vektorskog kontejnera
cout << "rbegin() i rend() iteratori: ";
za (auto j = arr.rbegin(); j != arr.rend(); j++)
{
cout << *j << ' ';
}
// Očekivani učinak: 20 5 10
cout << "Veličina niza je: " << arr.size() << endl;
// Očekivani izlaz: Veličina polja je: 3
// Promjena veličine polja da ima samo 2 elementa
arr.promjena veličine (2);
cout << "Veličina niza je: " << arr.size() << endl;
// Očekivani izlaz: Veličina polja je: 2
cout << "MaxSize(): " << arr.max_size() << endl;
cout << "Vektor prazan? " << arr.empty() << endl;
// pop_back zadnji element
arr.pop_back();
// umetnuti 5 na početak niza
arr.insert (arr.begin(), 5);
}
Povezano: Kako naučiti programirati na C++
Korištenje vektora u C++
C++ vektori su fleksibilni i moćni, zbog čega su bitna značajka za svakog C++ developera. STL je značajna C++ biblioteka, a njeno detaljno istraživanje može vam pomoći u stvaranju boljih aplikacija.
Želite bolje razumjeti C++ uz Standardnu knjižnicu predložaka? Potražite knjige ovdje.
Pročitajte dalje
- Programiranje
- Programiranje
- Objektno orijentirano programiranje
Fahad je pisac u MakeUseOf-u, a trenutno studira informatiku. Kao strastveni tehnološki pisac, on vodi računa o tome da ostane u tijeku s najnovijom tehnologijom. Posebno ga zanimaju nogomet i tehnologija.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Kliknite ovdje za pretplatu