Vektor v knjižnici standardnih predlog C ++ (STL) s primerom

Kazalo:

Anonim

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:

vector  name (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:

  1. V našo kodo vključite datoteko glave iostream. Omogočil nam bo branje s konzole in pisanje nanjo.
  2. V našo kodo vključite vektorsko datoteko glave. Omogočil nam bo delo z vektorji v jeziku C ++.
  3. Vključite imenski prostor std, da lahko uporabljate njegove razrede in funkcije, ne da bi ga klicali.
  4. Pokličite funkcijo main (), znotraj katere je treba dodati logiko programa.
  5. Znak {označuje začetek telesa glavne () funkcije.
  6. Navedite vektor z imenom nums za shranjevanje nabora celih števil.
  7. Ustvarite zanko for, ki nam bo pomagala preiti skozi vektor. Spremenljivka nam bo pomagal ponovitev čez vektorskih elementov, od 1. st 5 th elementov.
  8. 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.
  9. Na konzolo natisnite nekaj besedila
  10. 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 ().
  11. Natisnite vrednosti, na katere opozarja spremenljivka iteratorja an, na konzolo za vsako ponovitev.
  12. Na konzolo natisnite nekaj besedila. \ N je nov znak vrstice, ki premakne kurzor v novo vrstico, da se od tam natisne.
  13. 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 ().
  14. Na konzolo za vsako ponovitev natisnite vrednosti, na katere kaže spremenljivka iteratorja a.
  15. Glavna funkcija mora vrniti vrednost, če se program uspešno izvaja.
  16. 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:

  1. V našo kodo vključite datoteko glave iostream, da boste lahko uporabljali njene funkcije.
  2. V našo kodo vključite vektorsko datoteko glave za uporabo njenih funkcij.
  3. Vključite imenski prostor std za uporabo njegovih razredov, ne da bi ga poklicali.
  4. Pokličite glavno funkcijo. Logiko programa je treba dodati v njegovo telo.
  5. Začetek telesa glavne () funkcije.
  6. Navedite vektor z imenom nums za shranjevanje nekaterih celoštevilnih vrednosti.
  7. Shranite 5 elementov v vektorske številke. Vsak z vrednostjo 1.
  8. Na konzolo natisnite nekaj besedila
  9. Uporabite spremenljivko iteratorja a za iteracijo po elementih vektorskih števil.
  10. Na konzolo natisnite vrednosti vektorskih števil za vsako ponovitev.
  11. Vrednost 2 dodajte na konec vektorskih števil.
  12. Navedite celoštevilčno spremenljivko n za shranjevanje velikosti vektorskih števil.
  13. Natisnite zadnjo vrednost vektorskih števil poleg drugega besedila. Vrniti mora 2.
  14. Odstranite zadnji element iz vektorskih števil. 2 bo odstranjen.
  15. Natisnite besedilo na konzolo. \ N Premakne kurzor v novo vrstico, da tam natisnete besedilo.
  16. Uporabite spremenljivko iteratorja a za iteracijo po elementih vektorskih števil.
  17. Na konzolo natisnite vrednosti vektorskih števil za vsako ponovitev.
  18. Vstavite vrednost 7 na začetek vektorskih števil.
  19. Natisnite prvo vrednost vektorskih števil poleg drugega besedila. Vrniti se mora 7.
  20. Izbriši vse elemente iz vektorskih števil.
  21. Po brisanju vse vsebine natisnite velikost vektorskega števila skupaj z drugim besedilom. Vrniti mora 0.
  22. 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:

  1. V našo kodo vključite glavo datoteke iostream, da uporabite njeno funkcijo.
  2. V našo kodo vključite vektorsko datoteko glave za uporabo njenih funkcij.
  3. V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
  4. Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
  5. Ustvari vektor z imenom vector1 za shranjevanje celih števil.
  6. Z zanko for ustvarite spremenljivko x z vrednostmi od 1 do 10.
  7. Vrednosti spremenljivke x potisnite v vektor.
  8. Na konzolo natisnite velikost vektorja skupaj z drugim besedilom.
  9. Natisnite zmogljivost vektorja skupaj z drugim besedilom na konzoli.
  10. Na konzolo natisnite največje število predmetov, ki jih lahko vsebuje vektor poleg drugega besedila.
  11. Spremenite velikost vektorja tako, da vsebuje samo 5 elementov.
  12. Natisnite novo velikost vektorja skupaj z drugim besedilom.
  13. Preverite, ali vektor ni prazen.
  14. Natisnite besedilo na konzolo, če vektor ni prazen.
  15. Z izjavo else navedite, kaj storiti, če je vektor prazen.
  16. Besedilo za tiskanje na konzoli, če je vektor prazen.
  17. Program mora po uspešnem zaključku vrniti vrednost.
  18. 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.