Hoe C++ Vector te gebruiken

How Use C Vector



Invoering

Een array is een reeks van dezelfde objecttypen op opeenvolgende geheugenlocaties. Een array kan de lengte niet vergroten of verkleinen. Een vector is als een array, maar de lengte kan worden vergroot of verkleind. Een vector heeft dus veel meer operaties dan een array.

C++ heeft veel bibliotheken, die allemaal de C++ Standard Library vormen. Een van deze bibliotheken is de containerbibliotheek. Een container is een verzameling objecten en er kunnen bepaalde bewerkingen op de verzameling worden uitgevoerd. C++-containers kunnen in twee sets worden gegroepeerd: sequentiecontainers en associatieve containers. Sequentiecontainers zijn vector, array (niet dezelfde array die eerder is besproken), deque, forward_list en list. Dit zijn verschillende verzamelingen (array-achtige gegevensstructuren) en elk biedt verschillende compromissen.







Elke programmeur zou moeten weten hoe hij moet beslissen of hij een vector, een array, een deque, een forward_list of een lijst moet gebruiken. Als een programmeur een structuur nodig heeft die meer bewerkingen vereist dan die van een gewone array, mag de gewone array niet worden gebruikt.



Als de taak frequente toevoegingen en verwijderingen in het midden van de reeks omvat, moet een lijst of forward_list worden gebruikt. Als de taak frequente toevoegingen en verwijderingen aan het begin of einde van een reeks omvat, moet een deque worden gebruikt. Een vector moet worden gebruikt wanneer dit soort bewerkingen niet vereist zijn.



In dit artikel wordt uitgelegd hoe u de C++-vector gebruikt. U hebt enige kennis van C++-aanwijzers, -referenties en -arrays nodig om dit artikel te begrijpen.





Klasse en objecten

Een klasse is een verzameling variabelen en functies die samenwerken, waarbij aan de variabelen geen waarden zijn toegewezen. Wanneer waarden aan de variabelen worden toegewezen, wordt een klasse een object. Verschillende waarden die aan dezelfde klasse worden gegeven, resulteren in verschillende objecten; dat wil zeggen, verschillende objecten kunnen van dezelfde klasse zijn, maar verschillende waarden hebben. Het maken van een object uit een klasse wordt ook wel het instantiëren van het object genoemd.

De term vector beschrijft een klasse. Een object gemaakt van een vector heeft een naam die is gekozen door de programmeur.



Een functie die bij een klasse hoort, is nodig om een ​​object uit de klasse te instantiëren. In C++ heeft die functie dezelfde naam als de naam van de klasse. Verschillende objecten gemaakt (geïnstantieerd) van de klasse hebben verschillende namen die door de programmeur aan elk van hen zijn gegeven.

Een object maken vanuit een klasse betekent het object construeren; het betekent ook dat het object wordt geconcretiseerd.

De Vectorklasse

De vectorklasse is al gedefinieerd en bevindt zich in de bibliotheek. Om de vectorklasse te gebruiken, moet een programmeur de vectorheader in het bestand opnemen met de volgende preprocessing-richtlijn:

#erbij betrekken

Zodra de koptekst is opgenomen, worden alle vectorkenmerken (gegevensleden en lidfuncties) toegankelijk. Om het count-object te gebruiken om gegevens naar de terminal (console) uit te voeren, moet ook de objectheader worden opgenomen. Om een ​​programma met de vector te schrijven, moeten minimaal de volgende headers worden opgenomen:

#erbij betrekken
#erbij betrekken

Een vector instantiëren

intfoo[10];

Hierboven staat de declaratie van een array met de naam foo en het aantal elementen 10. Dit is een array van gehele getallen. De declaratie van een vector is vergelijkbaar. Voor een vector is het aantal elementen optioneel, omdat de lengte van de vector kan toenemen of afnemen.

Op dit punt in het programma is de vectorklasse al gedefinieerd in de bibliotheek en is de koptekst opgenomen. De vector kan als volgt worden geïnstantieerd:

uur::vector <int>vtr(8);

Hier is de vector van de speciale constructorfunctie. Het type gegevens dat de vector zal bevatten, is int, tussen punthaken. De term vtr is de naam gekozen door de programmeur voor de vector. Ten slotte is 8, tussen haakjes, het voorlopige aantal gehele getallen dat de vector zal hebben.

De term std staat voor standaard naamruimte. Deze term moet in deze context worden gevolgd door een dubbele dubbele punt. Iedereen kan zijn eigen vectorklassebibliotheek schrijven en gebruiken. C++ heeft echter al een standaardbibliotheek met standaardnamen, inclusief vector. Om een ​​standaardnaam te gebruiken, moet de standaardnaam worden voorafgegaan door std:: . Om het typen van std:: elke keer in het programma voor een standaardnaam te vermijden, kan het programmabestand als volgt starten:

#erbij betrekken
#erbij betrekken
namespace std; gebruiken;

Een functie overbelasten

Wanneer twee of meer verschillende functiehandtekeningen dezelfde naam hebben, wordt die naam overbelast genoemd. Wanneer een functie wordt aangeroepen, bepalen het aantal en het type argumenten welke functie wordt uitgevoerd.

Een vector construeren

Een vector construeren betekent een vectorobject instantiëren (creëren). De constructorfunctie is als volgt overbelast:

vectornaam

Dit creëert een vector met lengte nul en type T. De volgende instructie creëert een vector met lengte nul van het type float met de naam vtr:

vector<vlot>vtr;

vectornaam (n)

Dit creëert een vector met n elementen van het type T. Een statement voor deze vector met vier float-elementen is als volgt:

vector<vlot>vtr(4);

vectornaam (n, t)

Dit creëert een vector van n elementen, geïnitialiseerd op de waarde t. De volgende instructie creëert een vector van 5 elementen, waarbij elk element de waarde 3.4 heeft:

vector<vlot>vtr(5, 3.4);

Bouwen met initialisatie

Een vector kan tegelijkertijd worden geconstrueerd (gemaakt) en geïnitialiseerd, op een van de volgende twee manieren:

vector<vlot>vtr= {1.1, 2.2, 3.3, 4.4};

Of

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};

Merk op dat er geen haakjes achter de objectnaam staan. Haakjes die net na de objectnaam worden gebruikt, moeten als volgt de initialisatielijst hebben:

vector<vlot>vtr({1.1, 2.2, 3.3, 4.4});

Een vector kan later worden geconstrueerd en geïnitialiseerd met de initialisatielijst. In dit geval worden de haakjes niet gebruikt:

vector<vlot>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

vector V2 (V1)

Dit is een kopie-constructor. Het creëert een vector V2 als een kopie van de vector V1. De volgende code illustreert dit:

vector<vlot>vtr1(5, 3.4);
vector<vlot>vtr2(vtr1);

Een vector toewijzen tijdens de constructie

Tijdens de constructie kan een lege vector worden gemaakt terwijl er een andere aan wordt toegewezen, als volgt:

vector<vlot>vtr1{1.1, 2.2, 3.3, 4.4};
vector<vlot>vtr2=vtr1;

De tweede verklaring is gelijk aan:

vector<vlot>vtr2= {1.1, 2.2, 3.3, 4.4};

const Vector

Een const vector is een vector waarvan de elementen niet veranderd kunnen worden. De waarden in deze vector zijn alleen-lezen. Wanneer gemaakt, ziet de vector er als volgt uit:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};

In dit vectortype kan geen element worden toegevoegd of verwijderd. Bovendien kan er geen waarde worden gewijzigd.

Bouwen met Iterator

Een sjabloon biedt een generieke weergave voor een gegevenstype. Een iterator biedt een generieke weergave van het scannen door de waarden van een container. De syntaxis om een ​​vector met een iterator te maken is als volgt:

sjabloon<klasse InputIterator>
vector(InputIterator eerst,InputIterator laatste,constToewijzer& =Toewijzer());

Dit construeert een vector voor het bereik [eerste, laatste] met behulp van de gespecificeerde allocator, die later in dit artikel zal worden besproken.

Een vector vernietigen

Als u een vector wilt vernietigen, laat u deze gewoon buiten het bereik vallen en wordt de vernietiging automatisch afgehandeld.

Vectorcapaciteit:

size_type capacity() const nobehalve

Het totale aantal elementen dat de vector kan bevatten zonder dat hertoewijzing nodig is, wordt geretourneerd door de capaciteitslidfunctie. Een codesegment hiervoor is als volgt:

vector<vlot>vtr(4);
intop een=vtr.capaciteit();
kosten<<op een<< 'N';

De uitvoer is 4.

reserve(n)

Geheugenruimte is niet altijd vrij beschikbaar. Extra ruimte kan vooraf gereserveerd worden. Overweeg het volgende codesegment:

vector<vlot>vtr(4);
vtr.reserveren(6);
kosten<<vtr.capaciteit() << 'N';

De output is 6. Dus de extra gereserveerde ruimte is 6 – 4 = 2 elementen. De functie retourneert void.

size() const nobehalve

Dit retourneert het aantal elementen in de vector. De volgende code illustreert deze functie:

vector<vlot>vtr(4);
vlots=vtr.maat();
kosten<<s<< 'N';

De uitvoer is 4.

shrink_to_fit()

Na het geven van extra capaciteit aan een vector met de reserve()-functie, kan de vector worden verkleind om aan zijn oorspronkelijke grootte te passen. De volgende code illustreert dit:

vector<vlot>vtr(4);
vtr.reserveren(6);
vtr.verkleinen_naar_passen();
ints=vtr.maat();
kosten<<s<< 'N';

De uitvoer is 4 en niet 6. De functie retourneert void.

formaat wijzigen(sz), formaat wijzigen(sz,c)

Dit verkleint de vector. Als het nieuwe formaat kleiner is dan het oude formaat, worden de elementen aan het einde gewist. Als de nieuwe maat langer is, wordt tegen het einde een standaardwaarde toegevoegd. Om een ​​bepaalde waarde toe te voegen, gebruikt u de functie resize() met twee argumenten. Het volgende codesegment illustreert het gebruik van deze twee functies:

vector<vlot>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.formaat wijzigen(2);
kosten<< 'Nieuwe maat vtr1: ' <<vtr1.maat() << 'N';
vector<vlot>vtr2{1.1, 2.2};
vtr2.formaat wijzigen(4, 8.8);
kosten<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << 'N';

De uitvoer is de volgende:

Nieuwe maat vtr1: 2
vtr2: 1.1 2.2 8.8 8.8

De functies retourneren ongeldig.

lege() const neebehalve

Deze functie retourneert 1 voor waar als er geen elementen in de vector zijn en 0 voor onwaar als de vector leeg is. Als een vector 4 locaties heeft voor een bepaald type gegevens, zoals float, zonder enige float-waarde, dan is die vector niet leeg. De volgende code illustreert dit:

vector<vlot>vtr;
kosten<<vtr.leeg() << 'N';
vector<vlot>vt(4);
kosten<<zodatleeg() << 'N';

vector<vlot>v(4,3.5);
kosten<<v.leeg() << 'N';

De uitvoer is de volgende:

1
0
0

Toegang tot vectorelementen

Een vector kan worden gesubscript (geïndexeerd) zoals een array. Index tellen begint vanaf nul.

vectorNaam[i]

De bewerking vectorName[i] retourneert een verwijzing naar het element op de ieindex van de vector. De volgende code voert 3.3 uit voor de bovenstaande vector:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr[2];
kosten<<fl<< 'N';

vectorNaam[i] const

De bewerking vectorName[i] const wordt uitgevoerd in plaats van vectorName[i] wanneer de vector een constante vector is. Deze bewerking wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr[2];
kosten<<fl<< 'N';

De expressie retourneert een constante verwijzing naar de ieelement van de vector.

Een waarde toewijzen met Subscript

Aan een niet-constante vector kan als volgt een waarde worden toegekend:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
kosten<<vtr[2] << 'N';

De uitvoer is 8.8.

vectorNaam.at(i)

vectorName.at(i) lijkt op vectorName[i], maar vectorName.at(i) is betrouwbaarder. De volgende code laat zien hoe deze vector moet worden gebruikt:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.Bij(2);
kosten<<fl<< 'N';
Bij()is een vectorlidfunctie.

vectorNaam.at(i) const

vectorName.at(i) const lijkt op vectorName[i] const, maar vectorName.at(i) const is betrouwbaarder. vectorName.at(i) const wordt uitgevoerd in plaats van vectorName.at(i) wanneer de vector een constante vector is. Deze vector wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.Bij(2);
kosten<<fl<< 'N';
Bij() constis een vectorlidfunctie.

Een waarde toewijzen met de functie at()

Een waarde kan als volgt aan een niet-constante vector worden toegekend met de functie at():

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vtr.Bij(2) = 8.8;
kosten<<vtr[2] << 'N';

De uitvoer is 8.8.

Probleem met subscripting

Het probleem met subscripting (indexering) is dat als de index buiten het bereik valt, er nul kan worden geretourneerd of dat er tijdens runtime een fout kan worden gegenereerd.

voorkant()

Dit retourneert een verwijzing naar het eerste element van de vector zonder het element te verwijderen. De uitvoer van de volgende code is 1.1.

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.voorkant();
kosten<<fl<< 'N';

Het element wordt niet uit de vector verwijderd.

front() const

Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking front() const uitgevoerd in plaats van front(). Dit wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.voorkant();
kosten<<fl<< 'N';

Er wordt een constante referentie geretourneerd. Het element wordt niet uit de vector verwijderd.

rug()

Dit retourneert een verwijzing naar het laatste element van de vector zonder het element te verwijderen. De uitvoer van de volgende code is 4.4.

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.rug();
kosten<<fl<< 'N';

back() const

Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking back() const uitgevoerd in plaats van back(). Dit wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vlotfl=vtr.rug();
kosten<<fl<< 'N';

Er wordt een constante referentie geretourneerd. Het element wordt niet uit de vector verwijderd.

Toegang tot vectorgegevens

data() neebehalve; data() const nobehalve;

Elk van deze retourneert een aanwijzer zodat [data(), data() + size()) een geldig bereik is.

Dit wordt later in het artikel uitgebreider behandeld.

Terugkerende iterators en de vector

Een iterator is als een aanwijzer, maar heeft meer functionaliteit dan een aanwijzer.

begin() noexcept

Retourneert een iterator die verwijst naar het eerste element van de vector, zoals in het volgende codesegment:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::iteratoriter=vtr.beginnen();
kosten<< *iter<< 'N';

De uitvoer is 1.1. Merk op dat de declaratie die de iterator ontvangt, is gedeclareerd. De iterator wordt gederefereerd in een retourexpressie om de waarde op dezelfde manier te verkrijgen als een pointer.

begin() const nobehalve;

Retourneert een iterator die naar het eerste element van de vector wijst. Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking begin() const uitgevoerd in plaats van begin(). Onder deze voorwaarde kan het corresponderende element in de vector niet worden gewijzigd. Dit wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::const_iteratoriter=vtr.beginnen();
kosten<< *iter<< 'N';

De uitvoer is 1.1. Merk op dat const_iterator deze keer is gebruikt in plaats van alleen iterator om de geretourneerde iterator te ontvangen.

end() neebehalve

Retourneert een iterator die direct voorbij het laatste element van de vector wijst. Overweeg het volgende codesegment:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::iteratoriter=vtr.einde();
kosten<< *iter<< 'N';

De uitvoer is 0, wat zinloos is, omdat er geen concreet element is na het laatste element.

end() const nobehalve

Retourneert een iterator die direct voorbij het laatste element van de vector wijst. Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking end() const uitgevoerd in plaats van end(). Overweeg het volgende codesegment:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::const_iteratoriter=vtr.einde();
kosten<< *iter<< 'N';

De uitvoer is 0. Merk op dat const_iterator deze keer is gebruikt in plaats van alleen iterator om de geretourneerde iterator te ontvangen.

Omgekeerde iteratie

Het is mogelijk om een ​​iterator te hebben die itereert van het einde tot net voor het eerste element.

rbegin() neebehalve

Retourneert een iterator die verwijst naar het laatste element van de vector, zoals in het volgende codesegment:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::reverse_iteratorrIter=vtr.opnieuw beginnen();
kosten<< *rIter<< 'N';

De uitvoer is 4,4.

Merk op dat de aangifte die de omgekeerde iterator ontvangt, is gedeclareerd. De iterator wordt gederefereerd in een retourexpressie om de waarde op dezelfde manier te verkrijgen als een pointer.

rbegin() const nobehalve;

Retourneert een iterator die naar het laatste element van de vector wijst. Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking rbegin() const uitgevoerd in plaats van rbegin(). Onder deze voorwaarde kan het corresponderende element in de vector niet worden gewijzigd. Deze functie wordt gebruikt in de volgende code:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::const_reverse_iteratorrIter=vtr.opnieuw beginnen();
kosten<< *rIter<< 'N';

De uitvoer is 4,4.

Merk op dat de const_reverse_iterator deze keer is gebruikt, in plaats van alleen de reverse_iterator, om de geretourneerde iterator te ontvangen.

render () neebehalve

Retourneert een iterator die net voor het eerste element van de vector wijst. Overweeg het volgende codesegment:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::reverse_iteratorrIter=vtr.maakt();
kosten<< *rIter<< 'N';

De uitvoer is 0, wat zinloos is, omdat er geen concreet element is net voor het eerste element.

render () const nobehalve

Retourneert een iterator die net voor het eerste element van de vector wijst. Wanneer de vectorconstructie wordt voorafgegaan door const, wordt de uitdrukking rend() const uitgevoerd in plaats van rend(). Overweeg het volgende codesegment:

constvector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vector<vlot> ::const_reverse_iteratorrIter=vtr.maakt();
kosten<< *rIter<< 'N';

De uitvoer is 0.

Merk op dat de const_reverse_iterator deze keer is gebruikt, in plaats van alleen de reverse_iterator, om de geretourneerde iterator te ontvangen.

Vectormodificaties

Een modifier die de vector wijzigt, kan een iterator aannemen of retourneren.

a.emplace(p, argumenten)

Voegt een object van het type T in, geconstrueerd met std::forward(args)… voor p.

Voor details – zie later

insert(iteratorPositie, waarde)

Voegt een kopie van de waarde in op de iteratorpositie van de vector. Retourneert de iterator (positie) in de vector waar de kopie is geplaatst. De volgende code laat zien waar de waarde is geplaatst:

vector<int>vtr{10, twintig, 30, 40};
vector<int> ::iteratoriter=vtr.beginnen();
++iter;
++iter;
vtr.invoegen(iter, 25);
kosten<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << 'N';

De output is: 20 25 30.

Merk op dat de iterator is gevorderd (verhoogd) net als een aanwijzer.

Er kan ook een initialisatielijst worden ingevoegd, zoals de volgende code illustreert:

vector<int>vtr{10, twintig, 30, 40};
vector<int> ::iteratoriter=vtr.beginnen();
++iter;
++iter;
vtr.invoegen(iter, {25, 28});

kosten<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << 'N';

De output is: 20 25 28 30.

wissen (positie)

Verwijdert een element op de positie waarnaar de iterator verwijst en retourneert vervolgens de iteratorpositie. De volgende code illustreert dit:

vector<int>vtr{10, twintig, 30, 40};
vector<int> ::iteratoriter=vtr.beginnen();
++iter;
++iter;
vtr.wissen(iter);
kosten<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< 'N';

De uitvoer is: 10 20 40

push_back(t), push_back(rv)

Wordt gebruikt om een ​​enkel element aan het einde van de vector toe te voegen. Gebruik push_back(t) als volgt:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vtr.terugduwen(5.5);
vlotfl=vtr[4];
kosten<<fl<< 'N';

De uitvoer is 5,5.

terugduwen(rv): -zie later.

pop_back()

Verwijdert het laatste element zonder het terug te geven. De grootte van de vector wordt met 1 verkleind. De volgende code illustreert dit:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
vlots=vtr.maat();
kosten<<s<< 'N';

De uitvoer is 3.

a.swap(b)

Twee vectoren kunnen worden verwisseld, zoals geïllustreerd in het volgende codesegment:

vector<vlot>vtr1{1.1, 2.2, 3.3, 4.4};
vector<vlot>vtr2{10, twintig};
vtr1.ruil(vtr2);
kosten<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << 'N';

kosten<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << 'N';

De uitvoer is:

vtr1: 10 twintig 0 0
vtr2: 1.1 2.2 3.3 4.4

Merk op dat de lengte van een vector indien nodig wordt vergroot. Ook worden waarden die geen vervangingen hadden, vervangen door een standaardwaarde.

Doorzichtig()

Verwijdert alle elementen uit de vector, zoals het volgende codesegment illustreert:

vector<vlot>vtr{1.1, 2.2, 3.3, 4.4};
vtr.Doorzichtig();
kosten<<vtr.maat() << 'N';

De uitvoer is 0.

Gelijkheid en relationele operatoren voor vectoren

De == Operator

Retourneert 1 voor waar als de twee vectoren dezelfde grootte hebben en de corresponderende elementen gelijk zijn; anders wordt 0 geretourneerd voor false. Bijvoorbeeld:

vector<int>u{1, 2, 3};
vector<int>V{4, 5, 6};
bool blauw=u==V;
kosten<<blauw<< 'N';

De uitvoer is 0.

De != Operator

Retourneert 1 voor waar als de twee vectoren niet dezelfde grootte hebben en/of de corresponderende elementen niet gelijk zijn; anders wordt 0 geretourneerd voor false. Bijvoorbeeld:

vector<int>u{1, 2, 3};
vector<int>V{4, 5, 6};
bool blauw=u! =V;
kosten<<blauw<< 'N';

De uitvoer is 1.

De

Retourneert 1 voor waar als de eerste vector de initiële subset van de tweede vector is, waarbij de elementen van de twee gelijke delen hetzelfde en in dezelfde volgorde zijn. Als beide vectoren even groot zijn en van links naar rechts bewegen en een element wordt aangetroffen in de eerste vector dat kleiner is dan het overeenkomstige element in de tweede vector, dan wordt nog steeds 1 geretourneerd. Anders wordt 0 voor false geretourneerd. Bijvoorbeeld:

vector<int>u{3, 1, 1};
vector<int>V{3, 2, 1};
bool blauw=u<V;
kosten<<blauw<< 'N';

De uitvoer is 1.

De > Operator

Retourneren! (U

De<= Operator

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

De >= Operator

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

Conclusie

Een vector is een voorbeeld van een sequentiecontainer. Een vector is een betere vorm van de gewone array en wordt geïnstantieerd vanuit een klasse. Vectoren hebben methoden die zijn geclassificeerd onder: constructie en toewijzing, capaciteit, elementtoegang, gegevenstoegang, iterators, modifiers en numeriek overbelaste operators.

Er zijn andere sequentiecontainers, genaamd list, forward_list en array. Als de taak frequente toevoegingen en verwijderingen in het midden van de reeks omvat, moet een lijst of forward_list worden gebruikt. Als de taak frequente toevoegingen en verwijderingen aan het begin of einde van de reeks omvat, moet een deque worden gebruikt. En dus moeten vectoren alleen worden gebruikt als dit soort bewerkingen niet belangrijk zijn.