Ako používať vektor C ++

How Use C Vector



Úvod

Pole je rad rovnakých typov objektov v po sebe nasledujúcich pamäťových umiestneniach. Pole nemôže predĺžiť alebo zmenšiť dĺžku. Vektor je ako pole, ale jeho dĺžku je možné zväčšiť alebo zmenšiť. Vektor má teda oveľa viac operácií ako pole.

C ++ má mnoho knižníc, všetky tvoria štandardnú knižnicu C ++. Jednou z týchto knižníc je kontajnerová knižnica. Kontajner je zbierka predmetov a so zbierkou je možné vykonávať určité operácie. Kontajnery C ++ je možné zoskupiť do dvoch množín: sekvenčné kontajnery a asociatívne kontajnery. Sekvenčné kontajnery sú vektorové, pole (nie je to isté pole, o ktorom sa diskutovalo predtým), deque, forward_list a list. Jedná sa o rôzne zbierky (dátové štruktúry podobné poliam) a každá ponúka odlišné kompromisy.







Každý programátor by mal vedieť, ako sa rozhodnúť, či použije vektor, pole, deque, forward_list alebo zoznam. Keď programátor potrebuje štruktúru, ktorá vyžaduje viac operácií, ako tých, ktoré sú spojené s bežným poľom, bežné pole by sa nemalo používať.



Ak úloha zahŕňa časté vkladanie a odstraňovanie uprostred sekvencie, mal by sa použiť zoznam alebo zoznam dopredu. Ak úloha zahŕňa časté vkladania a odstraňovania na začiatku alebo na konci sekvencie, mal by sa použiť deque. Ak tieto druhy operácií nie sú potrebné, mal by sa použiť vektor.



Tento článok vám ukáže, ako používať vektor C ++. Na pochopenie tohto článku budete potrebovať určité znalosti o ukazovateľoch C ++, referenciách a poliach.





Trieda a objekty

Trieda je množina premenných a funkcií, ktoré spolupracujú a kde premenným nie sú priradené žiadne hodnoty. Keď sú premenným priradené hodnoty, trieda sa stane objektom. Rôzne hodnoty dané tej istej triede vedú k rôznym predmetom; to znamená, že rôzne objekty môžu byť rovnakej triedy, ale môžu mať rôzne hodnoty. Vytvorenie objektu z triedy je známe aj ako inštancia objektu.

Termín vektor popisuje triedu. Objekt vytvorený z vektora má názov, ktorý zvolí programátor.



Funkcia, ktorá patrí do triedy, je potrebná na vytvorenie inštancie objektu z triedy. V C ++ má táto funkcia rovnaký názov ako názov triedy. Rôzne objekty vytvorené (inštitucionalizované) z triedy majú rôzne názvy, ktoré každému z nich programátor pridelí.

Vytvorenie objektu z triedy znamená zostrojenie objektu; to tiež znamená inštancovanie objektu.

Trieda vektorov

Trieda vektorov už bola definovaná a je v knižnici. Na použitie triedy vektor musí programátor zahrnúť do súboru hlavičku vektora s nasledujúcou smernicou o predbežnom spracovaní:

#zahrnúť

Akonáhle je hlavička zahrnutá, všetky vektorové funkcie (dátové členy a členské funkcie) budú prístupné. Ak chcete použiť objekt count na výstup údajov na terminál (konzolu), musí byť zahrnutá aj hlavička objektu. Na napísanie programu s vektorom musia byť zahrnuté minimálne tieto hlavičky:

#zahrnúť
#zahrnúť

Vytvorenie vektora

intfoo[10];

Hore je deklarácia poľa s názvom foo a počtom prvkov 10. Toto je pole celých čísel. Deklarácia vektora je podobná. Pre vektor je počet prvkov voliteľný, pretože dĺžka vektora sa môže zväčšovať alebo zmenšovať.

V tomto bode programu už bola v knižnici definovaná vektorová trieda a bola zahrnutá aj hlavička. Vektor je možné vytvoriť nasledovne:

hodiny::vektor <int>vtr(8);

Tu má vektor špeciálnu funkciu konštruktora. Typ údajov, ktoré bude vektor uchovávať, je int, v uhlových zátvorkách. Termín vtr je názov, ktorý programátor vybral pre vektor. Nakoniec 8 v zátvorkách je predbežný počet celých čísel, ktoré bude mať vektor.

Termín std znamená štandardný priestor názvov. Za týmto výrazom musí v tejto súvislosti nasledovať dvojbodka. Ktokoľvek môže napísať vlastnú knižnicu vektorových tried a používať ju. C ++ však už má štandardnú knižnicu so štandardnými názvami vrátane vektora. Ak chcete použiť štandardný názov, štandardnému názvu musí predchádzať std ::. Aby sa zabránilo zadávaniu súboru std :: zakaždým v programe pre štandardný názov, súbor programu sa môže začať nasledovne:

#zahrnúť
#zahrnúť
pomocou priestoru názvov std;

Preťaženie funkcie

Keď majú dva alebo viac rôznych podpisov funkcií rovnaký názov, tento názov je údajne preťažený. Pri volaní jednej funkcie určuje počet a typ argumentov, ktorá funkcia sa vykoná.

Konštrukcia vektora

Zostrojenie vektora znamená inštanciu (vytvorenie) vektorového objektu. Funkcia konštruktora je preťažená nasledovne:

vektorový názov

Tým sa vytvorí vektor s nulovou dĺžkou a typom T. Nasledujúci príkaz vytvorí vektor s nulovou dĺžkou typu float s názvom vtr:

vektor<plavák>vtr;

názov vektora (n)

Tým sa vytvorí vektor s n prvkami typu T. Príkaz pre tento vektor so štyrmi plavákovými prvkami je nasledujúci:

vektor<plavák>vtr(4);

názov vektora (n, t)

Tým sa vytvorí vektor n prvkov inicializovaných na hodnotu t. Nasledujúce tvrdenie vytvára vektor 5 prvkov, kde každý prvok má hodnotu 3,4:

vektor<plavák>vtr(5, 3.4);

Konštrukcia s inicializáciou

Vektor je možné zostrojiť (vytvoriť) a inicializovať súčasne jedným z nasledujúcich dvoch spôsobov:

vektor<plavák>vtr= {1.1, 2.2, 3.3, 4.4};

Alebo

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};

Všimnite si toho, že za názvom objektu nie sú žiadne zátvorky. Zátvorky používané hneď za názvom objektu by mali mať zoznam inicializátorov takto:

vektor<plavák>vtr({1.1, 2.2, 3.3, 4.4});

Vektor je možné skonštruovať a inicializovať neskôr pomocou zoznamu inicializátorov. V tomto prípade sa zátvorky nepoužijú:

vektor<plavák>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

vektor V2 (V1)

Toto je konštruktor kópií. Vytvorí vektor V2 ako kópiu vektora V1. Nasledujúci kód to ilustruje:

vektor<plavák>vtr1(5, 3.4);
vektor<plavák>vtr2(vtr1);

Priradenie vektora počas výstavby

Počas konštrukcie je možné vytvoriť prázdny vektor, pričom je mu priradený ďalší, a to nasledovne:

vektor<plavák>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<plavák>vtr2=vtr1;

Druhé vyhlásenie je ekvivalentné:

vektor<plavák>vtr2= {1.1, 2.2, 3.3, 4.4};

konštantný vektor

Konštantový vektor je vektor, ktorého prvky nemožno zmeniť. Hodnoty v tomto vektore sú len na čítanie. Po vytvorení sa vektor zobrazí nasledovne:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};

V tomto type vektora nemožno pridať ani odstrániť žiadny prvok. Navyše nie je možné zmeniť žiadnu hodnotu.

Konštrukcia s iterátorom

Šablóna poskytuje generickú reprezentáciu pre dátový typ. Iterátor poskytuje generickú reprezentáciu skenovania hodnôt kontajnera. Syntax na vytvorenie vektora s iterátorom je nasledovná:

predloha<trieda InputIterator>
vektor(InputIterator ako prvý,InputIterator posledný,konštPrideľovač& =Prideľovač());

Toto zostrojí vektor pre rozsah [prvý, posledný] pomocou zadaného alokátora, o ktorom sa bude diskutovať neskôr v tomto článku.

Zničenie vektora

Ak chcete zničiť vektor, jednoducho ho nechajte mimo dosahu a zničenie sa vykoná automaticky.

Vektorová kapacita

size_type kapacita () konšt. noexcept

Celkový počet prvkov, ktoré môže vektor pojať bez toho, aby bolo potrebné opätovné priradenie, vracia funkcia kapacitnej členky. Segment kódu pre toto je nasledujúci:

vektor<plavák>vtr(4);
intna jeden=vtr.kapacity();
náklady<<na jeden<< ' n';

Výstup je 4.

rezerva (n)

Pamäťový priestor nie je vždy voľne dostupný. Extra miesto je možné rezervovať vopred. Zvážte nasledujúci segment kódu:

vektor<plavák>vtr(4);
vtr.rezerva(6);
náklady<<vtr.kapacity() << ' n';

Výstup je 6. Takže vyhradený priestor navyše je 6 - 4 = 2 prvky. Funkcia vráti neplatné.

size () const noexcept

Tým sa vráti počet prvkov vo vektore. Nasledujúci kód ilustruje túto funkciu:

vektor<plavák>vtr(4);
plaváks=vtr.veľkosť();
náklady<<s<< ' n';

Výstup je 4.

zmenšiť, aby sa zmestili()

Po poskytnutí dodatočnej kapacity vektoru s funkciou Reserve () môže byť vektor zmenšený tak, aby zodpovedal jeho pôvodnej veľkosti. Nasledujúci kód to ilustruje:

vektor<plavák>vtr(4);
vtr.rezerva(6);
vtr.zmenšiť, aby sa zmestili();
ints=vtr.veľkosť();
náklady<<s<< ' n';

Výstup je 4 a nie 6. Funkcia vráti neplatné.

zmeniť veľkosť (sz), zmeniť veľkosť (sz, c)

Tým sa zmení veľkosť vektora. Ak je nová veľkosť menšia ako stará veľkosť, prvky na konci sa vymažú. Ak je nová veľkosť dlhšia, ku koncu sa pridá nejaká predvolená hodnota. Ak chcete pridať konkrétnu hodnotu, použite funkciu resize () s dvoma argumentmi. Nasledujúci segment kódu ilustruje použitie týchto dvoch funkcií:

vektor<plavák>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.zmeniť veľkosť(2);
náklady<< „Nová veľkosť vtr1:“ <<vtr1.veľkosť() << ' n';
vektor<plavák>vtr2{1.1, 2.2};
vtr2.zmeniť veľkosť(4, 8.8);
náklady<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Výstup je nasledujúci:

Nová veľkosť vtr1: 2
vtr2: 1,1 2,2 8,8 8,8

Funkcie sa vrátia späť.

empty () const noexcept

Táto funkcia vráti hodnotu 1 pre hodnotu true, ak vo vektore nie sú žiadne prvky, a 0 pre hodnotu false, ak je vektor prázdny. Ak má vektor 4 polohy pre konkrétny typ údajov, ako je napríklad float, bez akejkoľvek hodnoty typu float, tento vektor nie je prázdny. Nasledujúci kód to ilustruje:

vektor<plavák>vtr;
náklady<<vtr.prázdny() << ' n';
vektor<plavák>vt(4);
náklady<<tak toprázdny() << ' n';

vektor<plavák>v(4,3.5);
náklady<<v.prázdny() << ' n';

Výstup je nasledujúci:

1
0
0

Prístup k vektorovým prvkom

Vektor môže byť subskriptovaný (indexovaný) ako pole. Počítanie indexu začína od nuly.

vectorName [i]

Operácia vectorName [i] vracia odkaz na prvok v ithindex vektora. Nasledujúce výstupy kódu 3.3 pre vyššie uvedený vektor:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr[2];
náklady<<fl<< ' n';

vectorName [i] konšt

Operácia vectorName [i] const sa vykoná namiesto vectorName [i], ak je vektorom konštantný vektor. Táto operácia sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr[2];
náklady<<fl<< ' n';

Výraz vracia konštantný odkaz na ithprvok vektora.

Priradenie hodnoty pomocou dolného indexu

Nekonštantnému vektoru je možné priradiť hodnotu nasledovne:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
náklady<<vtr[2] << ' n';

Výstup je 8,8.

vectorName.at (i)

vectorName.at (i) je ako vectorName [i], ale vectorName.at (i) je spoľahlivejší. Nasledujúci kód ukazuje, ako by sa mal tento vektor používať:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.o(2);
náklady<<fl<< ' n';
o()je vektorový členfunkciu.

vectorName.at (i) konšt

vectorName.at (i) const je ako vectorName [i] const, ale vectorName.at (i) const je spoľahlivejší. vectorName.at (i) const sa vykoná namiesto vectorName.at (i), ak je vektor konštantný vektor. Tento vektor sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.o(2);
náklady<<fl<< ' n';
o() konštje vektorový členfunkciu.

Priradenie hodnoty pomocou funkcie at ()

Nekonštantnému vektoru možno priradiť hodnotu pomocou funkcie at () takto:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vtr.o(2) = 8.8;
náklady<<vtr[2] << ' n';

Výstup je 8,8.

Problém s dolným skriptom

Problém so sub-skriptovaním (indexovaním) je, že ak je index mimo rozsahu, môže byť vrátená nula alebo môže byť za behu vydaná chyba.

vpredu ()

To vráti odkaz na prvý prvok vektora bez odstránenia prvku. Výstupom nasledujúceho kódu je 1.1.

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.vpredu();
náklady<<fl<< ' n';

Prvok nie je odstránený z vektora.

predná () konšt

Keď vektorovej konštrukcii predchádza const, namiesto výrazu front () sa vykoná výraz front () const. Toto sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.vpredu();
náklady<<fl<< ' n';

Vráti sa konštantná referencia. Prvok nie je odstránený z vektora.

späť()

Tým sa vráti odkaz na posledný prvok vektora bez odstránenia prvku. Výstupom nasledujúceho kódu je 4.4.

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.späť();
náklady<<fl<< ' n';

späť () konšt

Keď vektorovej konštrukcii predchádza const, namiesto príkazu back () sa vykoná výraz back () const. Toto sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
plavákfl=vtr.späť();
náklady<<fl<< ' n';

Vráti sa konštantná referencia. Prvok nie je odstránený z vektora.

Vektorový prístup k údajom

údaje () noexcept; data () const noexcept;

Každý z nich vráti ukazovateľ taký, že [data (), data () + size ()) je platný rozsah.

Toto bude podrobnejšie popísané neskôr v článku.

Vracajúce sa iterátory a vektor

Iterátor je ako ukazovateľ, ale má viac funkcií ako ukazovateľ.

begin () noexcept

Vráti iterátor, ktorý ukazuje na prvý prvok vektora, ako v nasledujúcom segmente kódu:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::iterátoriter=vtr.začať();
náklady<< *iter<< ' n';

Výstup je 1,1. Všimnite si toho, že deklarácia, ktorá dostane iterátor, bola deklarovaná. Iterátor je dereferencovaný v návratovom výraze, aby získal hodnotu rovnakým spôsobom, akým je dereferencovaný ukazovateľ.

begin () const noexcept;

Vráti iterátor, ktorý ukazuje na prvý prvok vektora. Keď konštrukcii vektora predchádza const, namiesto begin () sa vykoná výraz begin () const. Za tejto podmienky nie je možné zodpovedajúci prvok vo vektore modifikovať. Toto sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::const_iteratoriter=vtr.začať();
náklady<< *iter<< ' n';

Výstup je 1,1. Všimnite si toho, že tentoraz bol na prijatie vráteného iterátora použitý const_iterator namiesto iba iterátora.

end () noexcept

Vráti iterátor, ktorý ukazuje bezprostredne za posledný prvok vektora. Zvážte nasledujúci segment kódu:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::iterátoriter=vtr.koniec();
náklady<< *iter<< ' n';

Výstup je 0, čo je nezmyselné, pretože za posledným prvkom nie je žiadny konkrétny prvok.

end () const noexcept

Vráti iterátor, ktorý ukazuje bezprostredne za posledný prvok vektora. Keď konštrukcii vektora predchádza const, namiesto end () sa vykoná výraz end () const. Zvážte nasledujúci segment kódu:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::const_iteratoriter=vtr.koniec();
náklady<< *iter<< ' n';

Výstup je 0. Všimnite si toho, že tentoraz bol na prijatie vráteného iterátora použitý const_iterator namiesto iba iterátora.

Reverzná iterácia

Je možné mať iterátor, ktorý iteruje od konca do tesne pred prvým prvkom.

rbegin () noexcept

Vráti iterátor, ktorý ukazuje na posledný prvok vektora, ako v nasledujúcom segmente kódu:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::reverzný_iterátorznova=vtr.rbegin();
náklady<< *znova<< ' n';

Výstup je 4,4.

Všimnite si toho, že deklarácia, ktorá dostane reverzný iterátor, bola deklarovaná. Iterátor je dereferencovaný v návratovom výraze, aby získal hodnotu rovnakým spôsobom, akým je dereferencovaný ukazovateľ.

rbegin () const noexcept;

Vráti iterátor, ktorý ukazuje na posledný prvok vektora. Keď vektorovej konštrukcii predchádza const, namiesto rbegin () sa vykoná výraz rbegin () const. Za tejto podmienky nie je možné zodpovedajúci prvok vo vektore modifikovať. Táto funkcia sa používa v nasledujúcom kóde:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::const_reverse_iteratorznova=vtr.rbegin();
náklady<< *znova<< ' n';

Výstup je 4,4.

Všimnite si toho, že tentoraz bol na prijatie vráteného iterátora použitý const_reverse_iterator, nie iba reverse_iterator.

render () noexcept

Vráti iterátor, ktorý ukazuje tesne pred prvý prvok vektora. Zvážte nasledujúci segment kódu:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::reverzný_iterátorznova=vtr.robí();
náklady<< *znova<< ' n';

Výstup je 0, čo je nezmyselné, pretože tesne pred prvým prvkom neexistuje žiadny konkrétny prvok.

render () const noexcept

Vráti iterátor, ktorý ukazuje tesne pred prvý prvok vektora. Keď vektorovej konštrukcii predchádza const, namiesto rend () sa vykoná výraz rend () const. Zvážte nasledujúci segment kódu:

konštvektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plavák> ::const_reverse_iteratorznova=vtr.robí();
náklady<< *znova<< ' n';

Výstup je 0.

Všimnite si toho, že tentoraz bol na prijatie vráteného iterátora použitý const_reverse_iterator, nie iba reverse_iterator.

Modifikátory vektora

Modifikátor, ktorý modifikuje vektor, môže prevziať alebo vrátiť iterátor.

a. miesto (p, arg)

Vloží objekt typu T vytvorený pomocou std :: forward (args) ... pred p.

Podrobnosti - pozri neskôr

vložiť (iteratorPosition, hodnota)

Vloží kópiu hodnoty do polohy iterátora vektora. Vráti iterátor (pozíciu) vo vektore, kde bola umiestnená kópia. Nasledujúci kód ukazuje, kde bola hodnota umiestnená:

vektor<int>vtr{10, dvadsať, 30, 40};
vektor<int> ::iterátoriter=vtr.začať();
++iter;
++iter;
vtr.vložiť(iter, 25);
náklady<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' n';

Výstup je: 20 25 30.

Všimnite si toho, že iterátor bol pokročilý (inkrementovaný) rovnako ako ukazovateľ.

Je možné vložiť aj zoznam inicializátorov, ako ukazuje nasledujúci kód:

vektor<int>vtr{10, dvadsať, 30, 40};
vektor<int> ::iterátoriter=vtr.začať();
++iter;
++iter;
vtr.vložiť(iter, {25, 28});

náklady<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' n';

Výstup je: 20 25 28 30.

vymazať (pozícia)

Odstráni prvok v polohe, na ktorú iterátor ukazuje, a potom vráti pozíciu iterátora. Nasledujúci kód to ilustruje:

vektor<int>vtr{10, dvadsať, 30, 40};
vektor<int> ::iterátoriter=vtr.začať();
++iter;
++iter;
vtr.vymazať(iter);
náklady<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' n';

Výstup je: 10 20 40

push_back (t), push_back (rv)

Slúži na pridanie jedného prvku na koniec vektora. Push_back (t) použite nasledovne:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vtr.push_back(5.5);
plavákfl=vtr[4];
náklady<<fl<< ' n';

Výstup je 5,5.

push_back(rv): -pozri neskôr.

pop_back ()

Odstráni posledný prvok bez toho, aby ho vrátil. Veľkosť vektora sa zmenší o 1. Nasledujúci kód to ilustruje:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
plaváks=vtr.veľkosť();
náklady<<s<< ' n';

Výstup je 3.

a. výmena (b)

Dva vektory je možné zameniť, ako je znázornené v nasledujúcom segmente kódu:

vektor<plavák>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<plavák>vtr2{10, dvadsať};
vtr1.vymeniť(vtr2);
náklady<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' n';

náklady<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Výstupom je:

vtr1: 10 dvadsať 0 0
vtr2: 1.1 2.2 3.3 4.4

V prípade potreby sa dĺžka vektora zvýši. Tiež hodnoty, ktoré nemali nahradenia, sú nahradené nejakou predvolenou hodnotou.

jasný()

Odstráni všetky prvky z vektora, ako ukazuje nasledujúci segment kódu:

vektor<plavák>vtr{1.1, 2.2, 3.3, 4.4};
vtr.jasný();
náklady<<vtr.veľkosť() << ' n';

Výstup je 0.

Operátory rovnosti a vzťahov pre vektory

Operátor ==

Vráti hodnotu 1 pre hodnotu true, ak majú dva vektory rovnakú veľkosť a zodpovedajúce prvky sú rovnaké; v opačnom prípade vráti hodnotu 0 pre hodnotu false. Napríklad:

vektor<int>U{1, 2, 3};
vektor<int>V.{4, 5, 6};
bool bl=U==V.;
náklady<<bl<< ' n';

Výstup je 0.

Operátor! =

Vráti hodnotu 1 pre hodnotu true, ak tieto dva vektory nemajú rovnakú veľkosť a/alebo zodpovedajúce prvky nie sú rovnaké; v opačnom prípade vráti hodnotu 0 pre hodnotu false. Napríklad:

vektor<int>U{1, 2, 3};
vektor<int>V.{4, 5, 6};
bool bl=U! =V.;
náklady<<bl<< ' n';

Výstup je 1.

The

Vráti hodnotu 1 pre hodnotu true, ak je prvý vektor počiatočnou podmnožinou druhého vektora, pričom prvky dvoch rovnakých častí sú rovnaké a v rovnakom poradí. Ak sú obidva vektory rovnakej veľkosti a pohybujú sa zľava doprava a v prvom vektore sa nachádza prvok, ktorý je menší ako zodpovedajúci prvok v druhom vektore, potom bude 1 vrátený. V opačnom prípade sa vráti hodnota 0 pre hodnotu false. Napríklad:

vektor<int>U{3, 1, 1};
vektor<int>V.{3, 2, 1};
bool bl=U<V.;
náklady<<bl<< ' n';

Výstup je 1.

> Operátor

Vráti sa! (U

The<= Operator

Vráti U<= V, where U is the first vector and V is the second vector, according to the above definitions.

Operátor> =

Vráti sa! (U<= V), where U is the first vector and V is the second vector, according to the above definitions.

Záver

Vektor je príkladom sekvenčného kontajnera. Vektor je lepšou formou obyčajného poľa a je vytvorený z triedy. Vektory majú metódy, ktoré sú klasifikované ako: konštrukcia a priradenie, kapacita, prístup k prvkom, prístup k údajom, iterátory, modifikátory a numericky preťažené operátory.

Existujú aj ďalšie sekvenčné kontajnery, nazývané zoznam, zoznam dopredu a pole. Ak úloha zahŕňa časté vkladanie a odstraňovanie uprostred sekvencie, mal by sa použiť zoznam alebo zoznam dopredu. Ak úloha zahŕňa časté vkladania a odstraňovania na začiatku alebo na konci sekvencie, mal by sa použiť deque. Vektory by sa preto mali používať iba vtedy, ak tieto druhy operácií nie sú dôležité.