C kezdőknek

C ++ kezdőknek

2.8. A standard tömb vektor

Bár a beépített tömb formálisan és a tároló mechanizmusát biztosítja, a fentiek szerint nem támogatja a konténer absztrakció szemantikáját. Mielőtt elfogadnánk a C ++ szabványt a programozásra ezen a szinten, meg kellett volna szerezni a szükséges osztályt, vagy saját magunkat kellene végrehajtanunk. Most a tömb osztálya a szabványos C ++ könyvtár része. Csak a tömb helyett tömb, hanem tömb.
Természetesen a vektor osztálysablonként működik. Így írhatunk

Az Array osztály sablon végrehajtásának és a vektor sablon végrehajtásának két jelentős különbsége van. Az első különbség az, hogy a vektor támogatást értéket rendelni a meglévő elemek behelyezését és kiegészítő elemek, amelyek dinamikusan növekszik a futás, ha a programozó úgy döntött, hogy ezt a lehetőséget neki. A második különbség sokkal radikálisabb, és a tervezés paradigmájának jelentős változását tükrözi. Ahelyett fenntartani egy nagy sor művelet tagállamokban a vektor, mint például a sort (), min (), max (), meg (), és így tovább, vektor osztály biztosítja a minimális: összehasonlítás művelet az egyenlőség és a kevésbé méret () és üres (). A fentebb felsorolt ​​általánosabb műveletek független, általánosított algoritmusok.
A vektorosztály használatához meg kell adnunk a megfelelő fejlécfájlt.

Akárcsak az Array osztályunk, a vektori osztály támogatja a hozzáférési műveletet index szerint. Íme egy példa arra, hogy átnézzük a vektor összes elemét:

Egy ilyen kereséshez használhatja az iterator pár használatát is. Egy iterátor egy olyan osztály objektuma, amely támogatja az indextípus absztrakcióját. Az osztály a sablon vektor meghatározható két tag funkciók - kezdődik () és vége (), egy iterátor beállítás rendre az első vektor elemet, és egy olyan elemet, következik az utolsó. Ez a két funkció együttesen határozza meg a vektor elemek tartományát. Az iterátor használatával az előző példa átírható az alábbiak szerint:

Az iter változó meghatározása

az iterátort a vektor következő eleméhez mozgatja. Az elem megszerzéséhez a dereferencing műveletet kell alkalmazni:

Ha a sort () algoritmust csak a vektor első felére szeretnénk alkalmazni, írjuk:

Az iterátorpár szerepét egy pár mutatóval játszhatjuk a beépített tömb elemeihez. Legyen például egy tömb:

Rendelje el az egész tömböt a sort () algoritmus meghívásával:

Így megrendelheti az első négy elemet:

Ahhoz, hogy algoritmusokat használhasson a programban, tartalmaznia kell egy fejlécfájlt

Az alábbiakban egy olyan program példája, amely számos algoritmust alkalmaz a vektorobjektumra:

(Osztályok, vektorok, térképek és egyéb konténerek, hogy részletesen a 6. fejezetben Igyekszünk egy olyan rendszer bevezetése szöveges keresés segítségével ezeket az osztályokat. 12. fejezet, úgy a generikus algoritmusok és melléklet példákat azok használatát.)
Ebben a fejezetben a C ++ programozás főbb szempontjait, az adott nyelvre alkalmazott objektumorientált megközelítés alapjait és a szabványos könyvtár használatát nagyon röviden fontolóra vettük. A következő fejezetekben részletesebben és szisztematikusabban tárgyaljuk ezeket a kérdéseket.

2.22 gyakorlat

Magyarázza el az alábbi vektor definíciók eredményeit:

2.23 gyakorlat

Kapcsolódó cikkek