Mi az a C ++ vektor?
A C ++ VECTOR egy dinamikus tömb, amely képes automatikusan átméretezni magát. Az átméretezés egy elem hozzáadása vagy törlése után következik be a vektorból. A tárolót a tároló automatikusan kezeli. A vektor elemeit egymás mellett tárolják. Ez lehetővé teszi a C ++ programozók számára, hogy az iterátorok segítségével hozzáférjenek a vektorelemekhez és azokon haladjanak.
Új adatok beszúrása egy vektorba annak végén történik. Ez különbözõ idõt vesz igénybe. Egy elem eltávolítása a vektorból állandó időt vesz igénybe. Ennek oka az, hogy nincs szükség a vektor átméretezésére. Egy elem beillesztése vagy törlése a vektor elején lineáris időt vesz igénybe.
Ebben a C ++ oktatóanyagban megtudhatja:
- Mi az a C ++ vektor?
- Mikor kell vektort használni?
- A vektorok inicializálása C ++ nyelven
- Iterátorok
- Módosítók
- 1. példa
- 2. példa
- Kapacitás
- 3. példa
Mikor kell vektort használni?
C ++ vektort kell használni a következő körülmények között:
- Ha következetesen változó adatelemekkel foglalkozunk.
- Ha az adatok mérete a kezdet előtt nem ismert, a vektor nem követeli meg a tároló maximális méretének beállítását.
A vektorok inicializálása C ++ nyelven
A C ++ vektorok szintaxisa:
vectorname (items)
- A fentiek szerint a vektor kulcsszóval kezdjük.
- Az adattípus a vektorban tárolandó elemek adattípusa.
- A név a vektor vagy az adatelemek neve.
- Az elemek a vektor adatainak elemszámát jelölik. Ez a paraméter nem kötelező.
Iterátorok
Az iterátorok célja, hogy segítsünk elérni a vektorban tárolt elemeket. Ez egy objektum, amely úgy működik, mint egy mutató. Itt vannak a C ++ vektorok által támogatott gyakori iterátorok:
- vector :: begin (): iterátort ad, amely a vektor első elemére mutat.
- vector :: end (): iterátort ad, amely a vektor múlt-vég elemére mutat.
- vector :: cbegin (): ugyanaz, mint a vector :: begin (), de nem képes elemeket módosítani.
- vector :: cend (): ugyanaz, mint a vector :: end (), de nem módosíthatja a vektor elemeket.
Módosítók
A módosítók a megadott adattípus jelentésének megváltoztatására szolgálnak. Itt vannak a C ++ általános módosítói:
- vector :: push_back (): Ez a módosító hátulról tolja el az elemeket.
- vector :: insert (): Új elemek beszúrásához egy vektorhoz egy megadott helyen.
- vector :: pop_back (): Ez a módosító eltávolítja a vektor elemeket hátulról.
- vector :: erase (): Elemtartomány eltávolítására szolgál a megadott helyről.
- vector :: clear (): Eltávolítja az összes vektor elemet.
1. példa
#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;}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- Vegye fel az iostream fejlécfájlt a kódunkba. Ez lehetővé teszi számunkra, hogy a konzolról olvassunk és írjunk.
- Vegye fel a vektor fejléc fájlt a kódunkba. Ez lehetővé teszi számunkra, hogy C ++ vektorokkal dolgozzunk.
- Tartsa be az std névteret, hogy az osztályait és függvényeit hívás nélkül használhassa.
- Hívja meg a main () függvényt, amelyen belül hozzá kell adni a program logikáját.
- A {a main () függvény törzsének kezdetét jelöli.
- Nyújtson be egy nums nevű vektort egész számok tárolására.
- Hozzon létre egy for ciklust, hogy könnyebben iterálhassunk a vektor felett. A változó segít iterálása a vektor elemek, 1 st 5 -én elemeket.
- Tolja az elemeket a vektor vektor számba hátulról. Minden iterációnál ez hozzáadja a vektor változójának aktuális értékét, amely 1 és 5 közötti.
- Nyomtasson ki egy kis szöveget a konzolra
- Használjon egy iterátor változót a vektor számok elemeinek iterálásához az elejétől a múlt végéig elemig. Ne feledje, hogy a vector :: begin () és a vector :: end () iterátorokat használjuk.
- Nyomtassa ki az iterátor változó által rámutatott értékeket a konzolon minden egyes iterációhoz.
- Nyomtasson ki egy kis szöveget a konzolra. A \ n új vonalkarakter, amely a kurzort az új sorra mozgatja, és onnan nyomtat.
- Használjon iterátor változót a vektor számok elemeinek iterációjához az elejétől a múlt végéig elemig. Ne feledje, hogy a vector :: cbegin () és a vector :: cend () iterátorokat használjuk.
- Minden iterációhoz nyomtassa ki a konzolon az a iterátor változó által mutatott értékeket.
- A fő funkciónak vissza kell adnia egy értéket, ha a program sikeresen fut.
- A fő () függvény törzsének vége.
2. példa
#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();}
Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- A funkcióinak használatához vegye fel az iostream fejlécfájlt kódunkba.
- Foglalja be a vektor fejlécfájlt a kódunkba annak funkcióinak használatához.
- Tartsa be az std névteret, hogy az osztályait hívás nélkül használhassa.
- Hívja meg a main () függvényt. A program logikát hozzá kell adni a törzséhez.
- A fő () függvény törzsének kezdete.
- Hirdessen egy nums nevű vektort néhány egész érték tárolására.
- Tároljon 5 elemet a vektor számokban. Mindegyik értéke 1.
- Nyomtasson ki egy kis szöveget a konzolra
- Használjon egy a iterátor változót a vektor számok elemeinek ismétléséhez.
- Nyomtassa ki a vektor számok értékeit a konzolra minden egyes iterációhoz.
- Adja hozzá a 2 értéket a vektor számok végéhez.
- Nyújtson be egy n egész változót a vektorszámok tárolására.
- Nyomtassa ki a vektor számok utolsó értékét más szöveg mellé. Vissza kell adnia egy 2-t.
- Távolítsa el az utolsó elemet a vektor számokból. A kettő eltávolításra kerül.
- Szöveg nyomtatása a konzolra. A \ n áthelyezi a kurzort az új sorra, hogy kinyomtassa a szöveget.
- Használjon egy a iterátor változót a vektor számok elemeinek ismétléséhez.
- Nyomtassa ki a vektor számok értékeit a konzolra minden egyes iterációhoz.
- Helyezze be a 7 értéket a vektor számok elejére.
- A vektor számok első értékét más szöveg mellett nyomtassa ki. Vissza kell térnie 7.
- Töröljön minden elemet a vektor számokból.
- Az összes tartalom törlése után nyomtassa ki a vektor szám méretét a többi szöveg mellé. 0-t kell adnia.
- A fő () függvény törzsének vége.
Kapacitás
Az alábbi függvényekkel meghatározhatja a vektor kapacitását:
- Méret () - Egy vektor elemeinek számát adja vissza.
- Max_size () - A legtöbb elemet adja vissza, amelyet egy vektor tárolhat.
- Kapacitás () - Visszaadja a vektor számára lefoglalt tárterület mennyiségét.
- Átméretezés () - A tároló átméretezése n elemet tartalmaz. Ha a vektor jelenlegi mérete nagyobb, mint n, a hátsó elemek eltávolításra kerülnek a vektorból. Ha a vektor jelenlegi mérete kisebb, mint n, akkor további elemek kerülnek a vektor hátuljába.
- Az üres () -i t értéke igaz, ha egy vektor üres, máskülönben hamis értéket ad vissza.
3. példa
#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"< Kimenet:
Itt van egy képernyőkép a kódról:
Kód Magyarázat:
- A funkció használatához vegye fel az iostream fejlécfájlt a kódunkba.
- Foglalja be a vektor fejlécfájlt a kódunkba annak funkcióinak használatához.
- Vegye fel az std névteret a kódunkba, hogy az osztályait hívás nélkül használhassa.
- Hívja meg a main () függvényt. A program logikát hozzá kell adni ennek a függvénynek a törzséhez.
- Hozzon létre egy vector1 nevű vektort az egész számok tárolásához.
- Használjon a for ciklust az x változó létrehozásához 1 és 10 közötti értékekkel.
- Tolja az x változó értékeit a vektorba.
- Nyomtassa ki a vektor méretét a konzolon lévő többi szöveg mellé.
- Nyomtassa ki a vektor kapacitását a konzolon lévő többi szöveg mellett.
- Kinyomtatja a vektoron a tételek maximális számát a konzolon lévő többi szöveg mellett.
- A vektor átméretezése csak 5 elem befogadására szolgál.
- Nyomtassa ki a vektor új méretét más szöveg mellé.
- Ellenőrizze, hogy a vektor nem üres-e.
- Ha a vektor nem üres, nyomtasson szöveget a konzolra.
- Használjon egy else utasítást, hogy mit kell tennie, ha a vektor üres.
- A konzolra nyomtatandó szöveg, ha a vektor üres.
- A programnak a sikeres befejezés után vissza kell térnie az értékre.
- A fő () függvénytest vége.
Összegzés:
- A C ++ vektor egy dinamikus tömb, amely képes automatikusan átméretezni magát, amikor egy elemet hozzáadnak vagy törölnek belőle.
- A vektor tárolását a tároló automatikusan kezeli.
- A vektor elemeit egybefüggő tárolóban tárolják, hogy hozzájuk férjenek, majd az iterátorok segítségével bejárják őket.
- Új adatok beszúrása egy vektorba annak végén történik.
- Az adatok vektorba történő beillesztése eltérő időt vesz igénybe.
- Egy elem eltávolítása a vektorból állandó időt vesz igénybe.
- Egy elem beillesztése vagy törlése az elején lineáris időt vesz igénybe.
- A következetesen változó adatelemekkel való foglalkozáskor vektorokat kell használni.
- Akkor is használhat vektorokat, ha az adatok mérete nem ismert a kezdet előtt.