Što je C ++ vektor?
C ++ VECTOR je dinamičan niz sposoban se automatski promjene veličine. Promjena veličine događa se nakon dodavanja ili brisanja elementa iz vektora. Spremnik automatski obrađuje spremnik. Elementi vektora pohranjuju se u neprekidnu pohranu. To omogućuje programerima C ++-a pristup i prelazak vektorskih elemenata pomoću iteratora.
Umetanje novih podataka u vektor vrši se na njegovom kraju. To traje različito vrijeme. Uklanjanje elementa iz vektora traje konstantno. Razlog je taj što nema potrebe za promjenom veličine vektora. Umetanje ili brisanje elementa na početku vektora traje linearno.
U ovom vodiču za C ++ naučit ćete:
- Što je C ++ vektor?
- Kada koristiti vektor?
- Kako inicijalizirati vektore u C ++
- Iteratore
- Modifikatori
- Primjer 1
- Primjer 2
- Kapacitet
- Primjer 3
Kada koristiti vektor?
C ++ vektor treba koristiti u sljedećim okolnostima:
- Kada se radi s elementima podataka koji se dosljedno mijenjaju.
- Ako veličina podataka nije poznata prije početka, vektor neće zahtijevati da postavite maksimalnu veličinu spremnika.
Kako inicijalizirati vektore u C ++
Sintaksa vektora u C ++ je:
vectorname (items)
- Kao što je gore prikazano, započinjemo s ključnom riječi vector.
- Vrsta podataka je vrsta podataka elemenata koji se pohranjuju u vektor.
- Ime je ime vektora ili elemenata podataka.
- Stavke označavaju broj elemenata za podatke vektora. Ovaj parametar nije obavezan.
Iteratore
Svrha iteratora je da nam pomognu pristupiti elementima koji su pohranjeni u vektoru. To je objekt koji radi poput pokazivača. Evo uobičajenih iteratora koje podržavaju C ++ vektori:
- vector :: begin (): daje iterator koji pokazuje na prvi element vektora.
- vector :: end (): daje iterator koji upućuje na prošli element vektora.
- vector :: cbegin (): isto je što i vector :: begin (), ali nema mogućnost izmjene elemenata.
- vector :: cend (): isto je što i vector :: end (), ali ne može mijenjati vektorske elemente.
Modifikatori
Modifikatori se koriste za promjenu značenja navedenog tipa podataka. Evo uobičajenih modifikatora u C ++:
- vector :: push_back (): Ovaj modifikator potiskuje elemente sa stražnje strane.
- vector :: insert (): Za umetanje novih predmeta u vektor na određenom mjestu.
- vector :: pop_back (): Ovaj modifikator uklanja vektorske elemente sa stražnje strane.
- vector :: erase (): Koristi se za uklanjanje niza elemenata s određenog mjesta.
- vector :: clear (): Uklanja sve vektorske elemente.
Primjer 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;}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja u naš kod. Omogućit će nam čitanje s konzole i pisanje na nju.
- Uključite vektorsku datoteku zaglavlja u naš kod. Omogućit će nam rad s vektorima na C ++.
- Uključite std prostor imena kako biste koristili njegove klase i funkcije bez poziva.
- Pozovite funkciju main () unutar koje treba dodati logiku programa.
- Oznaka {označava početak tijela glavne () funkcije.
- Proglasite vektor pod nazivom nums za pohranu skupa cijelih brojeva.
- Stvorite for petlju koja će nam pomoći da prelazimo preko vektora. Varijabla će nam pomoći ponavljamo nad vektorskim elementima, od 1. st do 5 -og elemenata.
- Gurnite elemente u vektorski broj sa stražnje strane. Za svaku će iteraciju to dodati trenutnu vrijednost varijable a u vektor, koja je 1 do 5.
- Ispišite malo teksta na konzolu
- Upotrijebite varijablu iteratora a za prelazak preko elemenata vektorskih brojeva od početka do elementa "prošli kraj". Primijetimo da koristimo iteratore vector :: begin () i vector :: end ().
- Ispišite vrijednosti na koje ukazuje varijabla iteratora an na konzoli za svaku iteraciju.
- Ispišite malo teksta na konzolu. \ N je novi znak retka koji pomiče kursor na novi redak za ispis od tamo.
- Upotrijebite varijablu iteratora za prelazak preko elemenata vektorskih brojeva od početka do elementa "prošli kraj". Napominjemo da koristimo iteratore vector :: cbegin () i vector :: cend ().
- Ispišite vrijednosti na koje pokazuje varijabla iteratora a na konzoli za svaku iteraciju.
- Glavna funkcija treba vratiti vrijednost ako se program uspješno izvodi.
- Kraj tijela glavne () funkcije.
Primjer 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();}
Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja u naš kod da biste koristili njegove funkcije.
- Uključite vektorsku datoteku zaglavlja u naš kod kako biste koristili njegove funkcije.
- Uključite std prostor imena da biste koristili njegove klase bez pozivanja.
- Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela.
- Početak tijela glavne () funkcije.
- Proglasite vektor nazvan nums za pohranu nekih cjelobrojnih vrijednosti.
- Spremite 5 elemenata u vektorske brojeve. Svaka s vrijednošću 1.
- Ispišite malo teksta na konzolu
- Upotrijebite varijablu iteratora a za prelazak kroz elemente vektorskih brojeva.
- Ispišite vrijednosti vektorskih brojeva na konzoli za svaku iteraciju.
- Dodajte vrijednost 2 na kraj vektorskih brojeva.
- Proglasite cjelobrojnu varijablu n za pohranu veličine vektorskih brojeva.
- Ispišite zadnju vrijednost vektorskih brojeva uz drugi tekst. Trebao bi vratiti 2.
- Uklonite posljednji element iz vektorskih brojeva. 2 će se ukloniti.
- Ispis teksta na konzoli. \ N Pomiče kursor u novi redak da bi tamo ispisao tekst.
- Upotrijebite varijablu iteratora a za prelazak kroz elemente vektorskih brojeva.
- Ispišite vrijednosti vektorskih brojeva na konzoli za svaku iteraciju.
- Umetnite vrijednost 7 na početak vektorskih brojeva.
- Ispišite prvu vrijednost vektorskih brojeva uz drugi tekst. Trebao bi se vratiti 7.
- Izbrišite sve elemente iz vektorskih brojeva.
- Ispišite veličinu vektorskog broja uz drugi tekst nakon brisanja svih sadržaja. Trebalo bi vratiti 0.
- Kraj tijela glavne () funkcije.
Kapacitet
Koristite sljedeće funkcije za određivanje kapaciteta vektora:
- Veličina () - Vraća broj stavki u vektoru.
- Max_size () - Vraća najveći broj predmeta koje vektor može pohraniti.
- Kapacitet () - Vraća količinu prostora za pohranu dodijeljenu vektoru.
- Resize () -Povećava veličinu spremnika da sadrži n stavki. Ako je trenutna veličina vektora veća od n, stražnje stavke uklonit će se iz vektora. Ako je trenutna veličina vektora manja od n, na stražnju stranu vektora dodavat će se dodatne stavke.
- Empty () -i t vraća true ako je vektor prazan, inače vraća false.
Primjer 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"< Izlaz:
Evo snimke zaslona koda:
Objašnjenje koda:
- Uključite iostream datoteku zaglavlja u naš kod kako biste koristili njegovu funkciju.
- Uključite vektorsku datoteku zaglavlja u naš kod kako biste koristili njegove funkcije.
- Uključite std prostor imena u naš kôd da biste koristili njegove klase bez pozivanja.
- Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
- Stvorite vektor pod nazivom vector1 za pohranu cijelih brojeva.
- Pomoću for petlje stvorite varijablu x s vrijednostima od 1 do 10.
- Gurnite vrijednosti varijable x u vektor.
- Ispišite veličinu vektora uz drugi tekst na konzoli.
- Ispišite kapacitet vektora zajedno s drugim tekstom na konzoli.
- Ispišite maksimalan broj predmeta koje vektor može držati uz drugi tekst na konzoli.
- Povećajte veličinu vektora tako da sadrži samo 5 elemenata.
- Ispišite novu veličinu vektora uz drugi tekst.
- Provjerite nije li vektor prazan.
- Ispišite tekst na konzoli ako vektor nije prazan.
- Upotrijebite izjavu else da biste naveli što učiniti ako je vektor prazan.
- Tekst za ispis na konzoli ako je vektor prazan.
- Program mora vratiti vrijednost nakon uspješnog završetka.
- Kraj tijela glavne () funkcije.
Sažetak:
- C ++ vektor je dinamički niz koji može automatski promijeniti veličinu kad se element doda ili iz njega izbriše.
- Spremnik za vektor automatski obrađuje spremnik.
- Elementi vektora pohranjuju se u neprekidnu pohranu kako bi im se pristupilo, a zatim ih se prelazi pomoću iteratora.
- Umetanje novih podataka u vektor vrši se na njegovom kraju.
- Umetanje podataka u vektor traje različito vrijeme.
- Uklanjanje elementa iz vektora traje konstantno.
- Umetanje ili brisanje elementa na početku traje linearno.
- Vektori se trebaju koristiti kada se radi s elementima podataka koji se dosljedno mijenjaju.
- Također, možete koristiti vektore ako veličina podataka nije poznata prije početka.