Kaj je vektor C ++?
C ++ VECTOR je dinamično polje lahko samodejno spreminjanje velikosti. Do spreminjanja velikosti pride, ko je element dodan ali izbrisan iz vektorja. S shrambo samodejno ravna posoda. Elementi vektorja so shranjeni v sosednji shrambi. To omogoča programerjem C ++ dostop in prehod do vektorskih elementov z uporabo iteratorjev.
Vstavljanje novih podatkov v vektor se izvede na njegovem koncu. To traja različno dolgo. Odstranjevanje elementa iz vektorja traja nenehno dolgo. Razlog je v tem, da vektorja ni treba spreminjati. Vstavljanje ali brisanje elementa na začetku vektorja traja linearno.
V tej vadnici C ++ boste izvedeli:
- Kaj je vektor C ++?
- Kdaj uporabiti vektor?
- Kako inicializirati vektorje v jeziku C ++
- Iteratorji
- Modifikatorji
- Primer 1
- 2. primer
- Zmogljivost
- 3. primer
Kdaj uporabiti vektor?
Vektor C ++ je treba uporabiti v naslednjih okoliščinah:
- Pri obravnavi podatkovnih elementov, ki se dosledno spreminjajo.
- Če velikost podatkov pred začetkom ni znana, vektor ne bo zahteval, da nastavite največjo velikost vsebnika.
Kako inicializirati vektorje v jeziku C ++
Sintaksa vektorjev v jeziku C ++ je:
vectorname (items)
- Kot je prikazano zgoraj, začnemo s ključno besedo vector.
- Podatkovni tip je podatkovni tip elementov, ki se shranijo v vektorju.
- Ime je ime vektorja ali podatkovnih elementov.
- Elementi označujejo število elementov za vektorske podatke. Ta parameter ni obvezen.
Iteratorji
Namen iteratorjev je, da nam pomagajo dostopati do elementov, ki so shranjeni v vektorju. To je predmet, ki deluje kot kazalec. Tu so najpogostejši iteratorji, ki jih podpirajo vektorji C ++:
- vector :: begin (): daje iterator, ki kaže na prvi element vektorja.
- vector :: end (): daje iterator, ki kaže na pretekli element vektorja.
- vector :: cbegin (): je enako kot vector :: begin (), vendar nima možnosti spreminjanja elementov.
- vector :: cend (): je enako kot vector :: end (), vendar ne more spreminjati vektorskih elementov.
Modifikatorji
Modifikatorji se uporabljajo za spreminjanje pomena določenega podatkovnega tipa. Tu so običajni modifikatorji v jeziku C ++:
- vector :: push_back (): Ta modifikator potisne elemente od zadaj.
- vector :: insert (): Za vstavljanje novih elementov v vektor na določenem mestu.
- vector :: pop_back (): Ta modifikator odstrani vektorske elemente s hrbtne strani.
- vector :: erase (): Uporablja se za odstranjevanje vrste elementov z določene lokacije.
- vector :: clear (): Odstrani vse vektorske elemente.
Primer 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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite datoteko glave iostream. Omogočil nam bo branje s konzole in pisanje nanjo.
- V našo kodo vključite vektorsko datoteko glave. Omogočil nam bo delo z vektorji v jeziku C ++.
- Vključite imenski prostor std, da lahko uporabljate njegove razrede in funkcije, ne da bi ga klicali.
- Pokličite funkcijo main (), znotraj katere je treba dodati logiko programa.
- Znak {označuje začetek telesa glavne () funkcije.
- Navedite vektor z imenom nums za shranjevanje nabora celih števil.
- Ustvarite zanko for, ki nam bo pomagala preiti skozi vektor. Spremenljivka nam bo pomagal ponovitev čez vektorskih elementov, od 1. st 5 th elementov.
- Potisnite elemente v vektorsko številko od zadaj. Za vsako ponovitev bo to dodalo trenutno vrednost spremenljivke a v vektor, ki je od 1 do 5.
- Na konzolo natisnite nekaj besedila
- Uporabite spremenljivko iteratorja a za iteracijo po elementih vektorskih številk od začetka do konca elementa. Upoštevajte, da uporabljamo iteratorja vector :: begin () in vector :: end ().
- Natisnite vrednosti, na katere opozarja spremenljivka iteratorja an, na konzolo za vsako ponovitev.
- Na konzolo natisnite nekaj besedila. \ N je nov znak vrstice, ki premakne kurzor v novo vrstico, da se od tam natisne.
- Uporabite spremenljivko iteratorja za iteracijo po elementih vektorskih številk od začetka do konca elementa. Upoštevajte, da uporabljamo iteratorja vector :: cbegin () in vector :: cend ().
- Na konzolo za vsako ponovitev natisnite vrednosti, na katere kaže spremenljivka iteratorja a.
- Glavna funkcija mora vrniti vrednost, če se program uspešno izvaja.
- Konec telesa glavne () funkcije.
2. primer
#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();}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite datoteko glave iostream, da boste lahko uporabljali njene funkcije.
- V našo kodo vključite vektorsko datoteko glave za uporabo njenih funkcij.
- Vključite imenski prostor std za uporabo njegovih razredov, ne da bi ga poklicali.
- Pokličite glavno funkcijo. Logiko programa je treba dodati v njegovo telo.
- Začetek telesa glavne () funkcije.
- Navedite vektor z imenom nums za shranjevanje nekaterih celoštevilnih vrednosti.
- Shranite 5 elementov v vektorske številke. Vsak z vrednostjo 1.
- Na konzolo natisnite nekaj besedila
- Uporabite spremenljivko iteratorja a za iteracijo po elementih vektorskih števil.
- Na konzolo natisnite vrednosti vektorskih števil za vsako ponovitev.
- Vrednost 2 dodajte na konec vektorskih števil.
- Navedite celoštevilčno spremenljivko n za shranjevanje velikosti vektorskih števil.
- Natisnite zadnjo vrednost vektorskih števil poleg drugega besedila. Vrniti mora 2.
- Odstranite zadnji element iz vektorskih števil. 2 bo odstranjen.
- Natisnite besedilo na konzolo. \ N Premakne kurzor v novo vrstico, da tam natisnete besedilo.
- Uporabite spremenljivko iteratorja a za iteracijo po elementih vektorskih števil.
- Na konzolo natisnite vrednosti vektorskih števil za vsako ponovitev.
- Vstavite vrednost 7 na začetek vektorskih števil.
- Natisnite prvo vrednost vektorskih števil poleg drugega besedila. Vrniti se mora 7.
- Izbriši vse elemente iz vektorskih števil.
- Po brisanju vse vsebine natisnite velikost vektorskega števila skupaj z drugim besedilom. Vrniti mora 0.
- Konec telesa glavne () funkcije.
Zmogljivost
Za določitev zmogljivosti vektorja uporabite naslednje funkcije:
- Velikost () - vrne število elementov v vektorju.
- Max_size () - Vrne največje število predmetov, ki jih lahko shrani vektor.
- Capacity () - Vrne količino prostora za shranjevanje, dodeljenega vektorju.
- Resize () - Spremeni velikost vsebnika, tako da vsebuje n elementov. Če je trenutna velikost vektorja večja od n, bodo zadnji elementi odstranjeni iz vektorja. Če je trenutna velikost vektorja manjša od n, bodo na zadnji strani vektorja dodani dodatni elementi.
- Empty () -i t vrne true, če je vektor prazen, sicer pa false.
3. primer
#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"< Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite glavo datoteke iostream, da uporabite njeno funkcijo.
- V našo kodo vključite vektorsko datoteko glave za uporabo njenih funkcij.
- V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvari vektor z imenom vector1 za shranjevanje celih števil.
- Z zanko for ustvarite spremenljivko x z vrednostmi od 1 do 10.
- Vrednosti spremenljivke x potisnite v vektor.
- Na konzolo natisnite velikost vektorja skupaj z drugim besedilom.
- Natisnite zmogljivost vektorja skupaj z drugim besedilom na konzoli.
- Na konzolo natisnite največje število predmetov, ki jih lahko vsebuje vektor poleg drugega besedila.
- Spremenite velikost vektorja tako, da vsebuje samo 5 elementov.
- Natisnite novo velikost vektorja skupaj z drugim besedilom.
- Preverite, ali vektor ni prazen.
- Natisnite besedilo na konzolo, če vektor ni prazen.
- Z izjavo else navedite, kaj storiti, če je vektor prazen.
- Besedilo za tiskanje na konzoli, če je vektor prazen.
- Program mora po uspešnem zaključku vrniti vrednost.
- Konec telesa glavne () funkcije.
Povzetek:
- Vektor C ++ je dinamično polje, ki se lahko samodejno spremeni, ko je element dodan ali izbrisan iz njega.
- S shrambo za vektor samodejno ravna vsebnik.
- Elementi vektorja se shranijo v sosednji pomnilnik, da se do njih dostopa in jih nato prečkajo z uporabo iteratorjev.
- Vstavljanje novih podatkov v vektor se izvede na njegovem koncu.
- Vstavljanje podatkov v vektor traja različno dolgo.
- Odstranjevanje elementa iz vektorja traja nenehno dolgo.
- Vstavljanje ali brisanje elementa na začetku traja linearno.
- Pri obravnavi podatkovnih elementov, ki se dosledno spreminjajo, je treba uporabiti vektorje.
- Uporabite lahko tudi vektorje, če velikost podatkov pred začetkom ni znana.