Vektori sisään C++ Standard Template Library (STL) esimerkin kanssa
Mikä on a C++ Vektori?
A C++ vektori on dynaaminen taulukko, joka pystyy muuttamaan itsensä automaattisesti. Koon muuttaminen tapahtuu sen jälkeen, kun elementti on lisätty tai poistettu vektorista. Säilytys tapahtuu automaattisesti kontin toimesta. Vektorin elementit tallennetaan viereiseen muistiin. Tämä mahdollistaa C++ ohjelmoijat pääsevät käsiksi vektorielementteihin ja kulkemaan niiden läpi iteraattorien avulla.
Uuden datan lisääminen vektoriin tehdään sen lopussa. Tämä vie eroajan. Elementin poistaminen vektorista kestää vakioajan. Syynä on, että vektorin kokoa ei tarvitse muuttaa. Elementin lisääminen tai poistaminen vektorin alussa vie lineaarista aikaa.
Milloin käyttää vektoria?
A C++ vektoria tulee käyttää seuraavissa olosuhteissa:
- Kun käsitellään jatkuvasti muuttuvia tietoelementtejä.
- Jos datan kokoa ei tiedetä ennen aloittamista, vektori ei vaadi sinua asettamaan säilön enimmäiskokoa.
Vektorien alustaminen C++
Vektorien syntaksi sisään C++ on:
vector <data-type> name (items)
- Kuten yllä näkyy, aloitamme vektoriavainsanalla.
- Tietotyyppi on vektoriin tallennettavien elementtien tietotyyppi.
- Nimi on vektorin tai tietoelementtien nimi.
- Kohteet ilmaisevat vektorin datan elementtien lukumäärän. Tämä parametri on valinnainen.
Iteraattorit
Iteraattorien tarkoitus on auttaa meitä pääsemään käsiksi vektoriin tallennettuihin elementteihin. Se on esine, joka toimii osoittimena. Tässä ovat tuetut yleiset iteraattorit C++ vektorit:
- vektori:: aloita(): se antaa iteraattorin, joka osoittaa vektorin ensimmäiseen elementtiin.
- vektori:: end(): se antaa iteraattorin, joka osoittaa vektorin menneisyyteen.
- vektori::cbegin(): se on sama kuin vector::begin(), mutta sillä ei ole kykyä muokata elementtejä.
- vektori::cend(): se on sama kuin vector::end(), mutta se ei voi muokata vektorielementtejä.
muokkaajia
Muokkaajia käytetään määritetyn tietotyypin merkityksen muuttamiseen. Tässä ovat yleiset muuntajat C++:
- vektori::push_back(): Tämä muuntaja työntää elementtejä takaapäin.
- vektori::lisää(): Uusien kohteiden lisäämiseen vektoriin tietyssä paikassa.
- vektori::pop_back(): Tämä muokkaaja poistaa vektorielementit takaa.
- vektori::erase(): Sitä käytetään elementtien poistamiseen määritetystä paikasta.
- vektori::clear(): Se poistaa kaikki vektorielementit.
Esimerkki 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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; }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiimme. Sen avulla voimme lukea konsolista ja kirjoittaa siihen.
- Sisällytä vektoriotsikkotiedosto koodiimme. Sen avulla voimme työskennellä vektoreiden kanssa C++.
- Sisällytä std-nimiavaruus, jotta voit käyttää sen luokkia ja toimintoja kutsumatta sitä.
- Kutsu main()-funktio, jonka sisään ohjelman logiikka pitäisi lisätä.
- { merkitsee main()-funktion rungon alkua.
- Määritä vektori nimeltä numerot tallentaaksesi joukon kokonaislukuja.
- Luo for-silmukka, joka auttaa meitä iteroimaan vektorin yli. Muuttuja auttaa meitä iteroimaan vektorielementtien yli 1:stä alkaenst ja 5th elementtejä.
- Työnnä elementit vektoriin num takaapäin. Jokaiselle iteraatiolle tämä lisää muuttujan a nykyisen arvon vektoriin, joka on 1-5.
- Tulosta tekstiä konsoliin
- Käytä iteraattorimuuttujaa a iteroidaksesi vektorin numeroiden elementtejä alusta loppuun. Huomaa, että käytämme vektori::begin()- ja vector::end()-iteraattoreita.
- Tulosta iteraattorimuuttujan an osoittamat arvot konsoliin jokaiselle iteraatiolle.
- Tulosta tekstiä konsoliin. \n on uusi rivimerkki, joka siirtää kohdistimen uudelle riville tulostaaksesi sieltä.
- Käytä iteraattorimuuttujaa iteroidaksesi vektorinumeroiden elementtejä alusta loppuun. Huomaa, että käytämme vector::cbegin()- ja vector::cend()-iteraattoreita.
- Tulosta iteraattorimuuttujan a osoittamat arvot konsoliin jokaiselle iteraatiolle.
- Pääfunktion tulee palauttaa arvo, jos ohjelma toimii onnistuneesti.
- Main()-funktion rungon loppu.
Esimerkki 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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(); }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiimme käyttääksesi sen toimintoja.
- Sisällytä vektoriotsikkotiedosto koodiimme käyttääksesi sitä tehtävät.
- Sisällytä std-nimiavaruus, jotta voit käyttää sen luokkia kutsumatta sitä.
- Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä sen runkoon.
- Main()-funktion rungon alku.
- Ilmoita numero-niminen vektori joidenkin kokonaislukujen tallentamiseksi.
- Tallenna 5 elementtiä vektorinumeroihin. Jokaisen arvo on 1.
- Tulosta tekstiä konsoliin
- Käytä iteraattorimuuttujaa a iteroidaksesi vektorin numeroiden elementtejä.
- Tulosta vektorinumeroiden arvot konsoliin jokaiselle iteraatiolle.
- Lisää arvo 2 vektorin numeroiden loppuun.
- Ilmoita kokonaislukumuuttuja n tallentaaksesi vektorin numeroiden koon.
- Tulosta vektorinumeroiden viimeinen arvo muun tekstin viereen. Sen pitäisi palauttaa 2.
- Poista viimeinen elementti vektorin numeroista. 2 poistetaan.
- Tulosta teksti konsoliin. \n siirtää kohdistimen uudelle riville tulostaaksesi tekstin sinne.
- Käytä iteraattorimuuttujaa a iteroidaksesi vektorin numeroiden elementtejä.
- Tulosta vektorinumeroiden arvot konsoliin jokaiselle iteraatiolle.
- Lisää arvo 7 vektorin numeroiden alkuun.
- Tulosta vektorinumeroiden ensimmäinen arvo muun tekstin viereen. Sen pitäisi palata 7.
- Poista kaikki elementit vektorin numeroista.
- Tulosta vektorin numeron koko muun tekstin viereen tyhjennettyään kaiken sisällön. Sen pitäisi palauttaa 0.
- Main()-funktion rungon loppu.
Koko
Käytä seuraavia funktioita määrittääksesi vektorin kapasiteetin:
- Koko() -Se palauttaa vektorin alkioiden määrän.
- Max_size() -Se palauttaa suurimman määrän kohteita, joita vektori voi tallentaa.
- Kapasiteetti () – Se palauttaa vektorille varatun tallennustilan määrän.
- Muuta kokoa () – Se muuttaa säilön koon sisältämään n kohdetta. Jos vektorin nykyinen koko on suurempi kuin n, takakappaleet poistetaan vektorista. Jos vektorin nykyinen koko on pienempi kuin n, ylimääräisiä kohteita lisätään vektorin taakse.
- Tyhjä () –it palauttaa arvon tosi, jos vektori on tyhjä. Muuten se palauttaa väärän.
Esimerkki 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> 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"<<endl; else cout << "Vector is empty"<<endl; return 0; }
lähtö:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiimme käyttääksesi sen toimintoa.
- Sisällytä vektoriotsikkotiedosto koodiimme käyttääksesi sen toimintoja.
- Sisällytä std-nimiavaruus koodiimme käyttääksesi sen luokkia kutsumatta sitä.
- Kutsu main()-funktiota. Ohjelmalogiikka tulisi lisätä tämän funktion runkoon.
- Luo vektori nimeltä vektori1 tallentaaksesi kokonaisluvut.
- Käytä for-silmukkaa luodaksesi muuttujan x, jonka arvot ovat 1-10.
- Työnnä muuttujan x arvot vektoriin.
- Tulosta vektorin koko muun tekstin rinnalle konsoliin.
- Tulosta vektorin kapasiteetti konsolin muun tekstin rinnalle.
- Tulosta vektoriin mahtuvien kohteiden enimmäismäärä muun konsolin tekstin rinnalle.
- Muuta vektorin kokoa niin, että siinä on vain 5 elementtiä.
- Tulosta vektorin uusi koko muun tekstin rinnalle.
- Tarkista, ettei vektori ole tyhjä.
- Tulosta teksti konsoliin, jos vektori ei ole tyhjä.
- Käytä else-lausetta kertoaksesi, mitä tehdä, jos vektori on tyhjä.
- Konsolille tulostettava teksti, jos vektori on tyhjä.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Main()-funktion rungon loppu.
Yhteenveto
- A C++ vektori on dynaaminen taulukko, joka pystyy automaattisesti muuttamaan itsensä kokoa, kun elementti lisätään tai poistetaan siitä.
- Säiliö hoitaa vektorin varastoinnin automaattisesti.
- Vektorin elementit tallennetaan vierekkäiseen muistiin, jotta niihin voidaan päästä käsiksi ja sitten kulkea läpi iteraattoreilla.
- Uuden datan lisääminen vektoriin tehdään sen lopussa.
- Tietojen lisääminen vektoriin vie differentiaalisen ajan.
- Elementin poistaminen vektorista kestää vakioajan.
- Elementin lisääminen tai poistaminen alussa vie lineaarista aikaa.
- Vektoreita tulee käyttää käsiteltäessä tietoelementtejä, jotka muuttuvat johdonmukaisesti.
- Voit myös käyttää vektoreita, jos datan kokoa ei tiedetä ennen aloittamista.