Mikä on C ++ -vektori?
C ++ VECTOR on dynaaminen taulukko, joka kykenee koon automaattisesti. Koon muuttaminen tapahtuu sen jälkeen, kun elementti on lisätty tai poistettu vektorista. Säiliö käsittelee varastointia automaattisesti. Vektorin elementit tallennetaan vierekkäiseen varastoon. Tämä antaa C ++ - ohjelmoijille mahdollisuuden päästä vektorielementteihin ja kulkea niiden läpi iteraattoreiden avulla.
Uuden datan lisääminen vektoriin tapahtuu sen lopussa. Tämä vie eri ajan. Elementin poistaminen vektorista vie vakiona aikaa. Syynä on, että vektorin kokoa ei tarvitse muuttaa. Elementin lisääminen tai poistaminen vektorin alkuun vie lineaarista aikaa.
Tässä C ++ -oppaassa opit:
- Mikä on C ++ -vektori?
- Milloin vektoria käytetään?
- Vektorien alustaminen C ++: ssa
- Iteraattorit
- Muuttajat
- Esimerkki 1
- Esimerkki 2
- Kapasiteetti
- Esimerkki 3
Milloin vektoria käytetään?
C ++ -vektoria tulisi käyttää seuraavissa olosuhteissa:
- Kun käsitellään jatkuvasti muuttuvia tietoelementtejä.
- Jos tietojen kokoa ei tiedetä ennen aloittamista, vektori ei vaadi sinua asettamaan säiliön enimmäiskokoa.
Vektorien alustaminen C ++: ssa
Vektorien syntaksit C ++: ssa ovat:
vectorname (items)
- Kuten yllä on esitetty, aloitamme vektorihakusanalla.
- Tietotyyppi on vektoriin tallennettavien elementtien tietotyyppi.
- Nimi on vektorin tai tietoelementtien nimi.
- Kohteet tarkoittavat vektorin tietojen elementtien määrää. Tämä parametri on valinnainen.
Iteraattorit
Iteraattorien tarkoituksena on auttaa meitä pääsemään vektoriin tallennettuihin elementteihin. Se on esine, joka toimii kuin osoitin. Tässä ovat C ++ -vektorien tukemat tavalliset iteraattorit:
- vektori :: alkaa (): se antaa iteraattorin, joka osoittaa vektorin ensimmäiseen elementtiin.
- vektori :: loppu (): se antaa iteraattorin, joka osoittaa vektorin menneisyyden loppuun.
- vektori :: cbegin (): se on sama kuin vektori :: alkaa (), mutta sillä ei ole kykyä muokata elementtejä.
- vektori :: cend (): se on sama kuin vektori :: loppu (), mutta ei voi muokata vektorielementtejä.
Muuttajat
Muokkaajia käytetään muuttamaan määritetyn tietotyypin merkitystä. Tässä ovat C ++: n yleiset muokkaajat:
- vektori :: push_back (): Tämä muokkaaja työntää elementit takaa.
- vector :: insert (): uusien kohteiden lisäämiseksi vektoriin määritetyssä paikassa.
- vektori :: pop_back (): Tämä muokkaaja poistaa vektorielementit takaa.
- vector :: erase (): Sitä käytetään poistamaan joukko elementtejä määritetystä sijainnista.
- vector :: clear (): Se poistaa kaikki vektorielementit.
Esimerkki 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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
- Sisällytä vektorin otsikkotiedosto koodiimme. Sen avulla voimme työskennellä vektoreiden kanssa C ++: ssa.
- Sisällytä tavallinen nimitila, jotta voit käyttää sen luokkia ja toimintoja kutsumatta sitä.
- Kutsu main () -funktio, johon ohjelman logiikka tulisi lisätä.
- {Tarkoittaa pääfunktion () rungon alkua.
- Ilmoita nums-niminen vektori kokonaislukujen tallentamiseksi.
- Luo for-silmukka, jotta voimme toistaa vektorin. Muuttuja auttaa meitä iteraatiota yli vektorin elementit, 1 st 5 th elementtejä.
- Työnnä elementit vektorinumeroon takaa. Kullekin iteraatiolle tämä lisää muuttujan a nykyisen arvon vektoriin, joka on 1-5.
- Tulosta tekstiä konsolille
- Käytä iteraattorimuuttujaa a toistaaksesi vektorisummien elementit alusta loppuun-loppuun-elementtiin. Huomaa, että käytämme vektori :: alkaa () ja vektori :: loppu () iteraattoreita.
- Tulosta iteraattorimuuttujan a osoittamat arvot konsolille jokaiselle iteraatiolle.
- Tulosta tekstiä konsolille. \ N on uusi rivimerkki, joka siirtää kohdistimen uudelle riville tulostettavaksi sieltä.
- Käytä iteraattorimuuttujaa iteroimaan vektorilukujen alkioiden yli alusta loppuun-loppuun-elementtiin. Huomaa, että käytämme vektori :: cbegin () ja vektori :: cend () iteraattoreita.
- Tulosta iteraattorimuuttujan a osoittamat arvot konsolille jokaiselle iteraatiolle.
- Päätoiminnon tulisi palauttaa arvo, jos ohjelma toimii onnistuneesti.
- Pääfunktion () rungon pää.
Esimerkki 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();}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vektorin otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila käyttääksesi luokkia kutsumatta sitä.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä sen runkoon.
- Pääfunktion () rungon alku.
- Ilmoita vektori nimeltä nums tallentamaan joitain kokonaislukuarvoja.
- Tallenna 5 elementtiä vektorilukuihin. Jokaisen arvo on 1.
- Tulosta tekstiä konsolille
- Käytä iteraattorimuuttujaa a iteroidaksesi vektorisummien elementit.
- Tulosta vektorilukujen arvot konsolille jokaiselle iteraatiolle.
- Lisää arvo 2 vektorinumman loppuun.
- Ilmoita kokonaislukumuuttuja n vektorilukkojen koon tallentamiseksi.
- Tulosta vektorilukujen viimeinen arvo muun tekstin viereen. Sen pitäisi palauttaa 2.
- Poista viimeinen elementti vektorilukuista. Kaksi poistetaan.
- Tulosta teksti konsolille. \ N siirtää kohdistimen uudelle riville tulostaaksesi tekstin sinne.
- Käytä iteraattorimuuttujaa a iteroidaksesi vektorisummien elementit.
- Tulosta vektorilukujen arvot konsolille jokaiselle iteraatiolle.
- Lisää arvo 7 vektorinumman alkuun.
- Tulosta vektorilukujen ensimmäinen arvo muun tekstin viereen. Sen pitäisi palata 7.
- Poista kaikki elementit vektorilukuista.
- Tulosta vektorin numero koko muu teksti sen jälkeen, kun olet tyhjentänyt kaiken sisällön. Sen pitäisi palauttaa 0.
- Pääfunktion () rungon pää.
Kapasiteetti
Määritä vektorin kapasiteetti seuraavien toimintojen avulla:
- Koko () - Palauttaa vektorin alkioiden määrän.
- Max_size () - Se palauttaa suurimman määrän kohteita, jotka vektori voi tallentaa.
- Kapasiteetti () - Se palauttaa vektorille osoitetun tallennustilan määrän.
- Resize () - Säiliön koko muutetaan n kohteeksi. Jos vektorin nykyinen koko on suurempi kuin n, takaosat poistetaan vektorista. Jos vektorin nykyinen koko on pienempi kuin n, vektorin takaosaan lisätään ylimääräisiä kohteita.
- Tyhjä () -i t palauttaa arvon true, jos vektori on tyhjä, muuten se palauttaa arvon false.
Esimerkki 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"< Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin käyttääksesi sen toimintoa.
- Sisällytä vektorin otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila koodissamme käyttääksesi luokkia sitä kutsumatta.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo vektori nimeltä vector1 kokonaislukujen tallentamiseksi.
- Luo muuttuja x arvolla 1-10 arvolla a for loop.
- Työnnä muuttujan x arvot vektoriin.
- Tulosta vektorin koko konsolin muun tekstin viereen.
- Tulosta vektorin kapasiteetti konsolin muun tekstin viereen.
- Tulosta enimmäismäärä kohteita, joita vektori voi pitää konsolin muun tekstin vieressä.
- Muuta vektorin kokoa pitämään vain 5 elementtiä.
- Tulosta vektorin uusi koko muun tekstin viereen.
- Tarkista, onko vektori tyhjä.
- Tulosta teksti konsolille, jos vektori ei ole tyhjä.
- Määritä else-lauseella mitä tehdä, jos vektori on tyhjä.
- Konsolille tulostettava teksti, jos vektori on tyhjä.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Pääfunktion () rungon loppu.
Yhteenveto:
- C ++ -vektori on dynaaminen taulukko, joka pystyy automaattisesti muuttamaan kokoa, kun elementti lisätään tai poistetaan siitä.
- Kontti käsittelee vektorin tallennustilan automaattisesti.
- Vektorin elementit tallennetaan vierekkäiseen varastoon, jotta niihin pääsee käsiksi ja sitten ne kulkevat iteraattoreita käyttäen.
- Uuden datan lisääminen vektoriin tapahtuu sen lopussa.
- Datan lisääminen vektoriin vie eri ajan.
- Elementin poistaminen vektorista vie vakiona aikaa.
- Elementin lisääminen tai poistaminen alussa vie lineaarista aikaa.
- Vektoreita tulisi käyttää käsiteltäessä jatkuvasti muuttuvia tietoelementtejä.
- Voit myös käyttää vektoreita, jos datan kokoa ei tiedetä ennen aloittamista.