Kako koristiti C ++ Vector

How Use C Vector

Uvod

Niz je niz istih vrsta objekata na uzastopnim memorijskim mjestima. Niz ne može povećati smanjenje rude po duljini. Vektor je poput niza, ali se njegova duljina može povećati ili smanjiti. Vektor, dakle, ima mnogo više operacija od niza.

C ++ ima mnogo knjižnica, od kojih sve čine standardnu ​​biblioteku C ++. Jedna od tih knjižnica je knjižnica spremnika. Spremnik je zbirka objekata, a nad zbirkom se mogu izvesti određene operacije. C ++ spremnici mogu se grupirati u dva skupa: spremnici niza i asocijativni spremnici. Spremnici sekvenci su vektorski, niz (nije isti niz o kojem smo prije govorili), deque, forward_list i list. To su različite zbirke (strukture podataka nalik nizu), a svaka nudi različite kompromise.



Svaki programer trebao bi znati odlučiti hoće li koristiti vektor, niz, deque, forward_list ili popis. Kada programer treba strukturu koja zahtijeva više operacija od onih povezanih s običnim nizom, obični niz se ne bi trebao koristiti.



Ako zadatak uključuje učestalo umetanje i brisanje u sredini niza, tada bi se trebao koristiti popis ili popis_ naprijed. Ako zadatak uključuje učestalo umetanje i brisanje na početku ili na kraju niza, tada se treba koristiti deque. Vektor treba koristiti kada takve operacije nisu potrebne.



Ovaj članak prikazuje kako se koristi vektor C ++. Za razumijevanje ovog članka trebat će vam znanje o C ++ pokazivačima, referencama i nizovima.

Klasa i objekti

Klasa je skup varijabli i funkcija koje rade zajedno, gdje varijablama nemaju dodijeljene vrijednosti. Kad se vrijednosti dodijele varijablama, klasa postaje objekt. Različite vrijednosti date istoj klasi rezultiraju različitim objektima; odnosno različiti objekti mogu biti iste klase ali imati različite vrijednosti. Stvaranje objekta iz klase također je poznato kao instanciranje objekta.

Pojam vektor opisuje klasu. Objekt kreiran iz vektora ima naziv koji odabire programer.



Funkcija koja pripada klasi potrebna je za instanciranje objekta iz klase. U C ++ ta funkcija ima isto ime kao i ime klase. Različiti objekti stvoreni (instancirani) iz klase imaju različita imena koja im je programer dao.

Stvaranje objekta iz klase znači konstruiranje objekta; to također znači instanciranje objekta.

Klasa vektora

Vektorska klasa je već definirana i nalazi se u knjižnici. Da bi koristio vektorsku klasu, programer mora uključiti zaglavlje vektora u datoteku sa sljedećom direktivom predprocesiranja:

#uključi

Nakon što se zaglavlje uključi, sve vektorske značajke (članovi podataka i funkcije člana) postaju dostupne. Da biste koristili objekt count za izlaz podataka na terminal (konzolu), zaglavlje objekta također mora biti uključeno. Da biste napisali program s vektorom, morate uključiti sljedeća zaglavlja:

#uključi
#uključi

Instanciranje vektora

intfoo[10];

Gore je deklaracija niza s imenom foo i brojem elemenata 10. Ovo je niz cijelih brojeva. Deklaracija vektora je slična. Za vektor je broj elemenata neobavezan jer se duljina vektora može povećati ili smanjiti.

U ovom trenutku programa, vektorska klasa je već definirana u knjižnici, a zaglavlje je uključeno. Vektor se može izvesti na sljedeći način:

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

Ovdje je vektor posebne funkcije konstruktora. Vrsta podataka koje će vektor držati je int, u uglatim zagradama. Pojam vtr naziv je koji je programer odabrao za vektor. Konačno, 8, u zagradama, je okvirni broj cijelih brojeva koje će vektor imati.

Izraz std označava standardni prostor imena. U ovom kontekstu ovaj izraz mora biti popraćen dvostrukim dvotočkom. Svatko može napisati vlastitu biblioteku vektorskih klasa i koristiti je. Međutim, C ++ već ima standardnu ​​knjižnicu sa standardnim imenima, uključujući vektorske. Da biste koristili standardni naziv, ispred standardnog naziva mora biti std ::. Kako biste izbjegli upisivanje std :: svaki put u program za standardni naziv, programska datoteka može započeti na sljedeći način:

#uključi
#uključi
koristeći imenski prostor std;

Preopterećenje funkcije

Kad dva ili više potpisa različitih funkcija imaju isto ime, kaže se da je to ime preopterećeno. Kada se pozove jedna funkcija, broj i vrsta argumenata određuju koja će se funkcija izvršiti.

Konstrukcija vektora

Konstruiranje vektora znači instanciranje (stvaranje) vektorskog objekta. Konstruktorska funkcija je preopterećena na sljedeći način:

vektorski naziv

Time se stvara vektor duljine nula i tipa T. Sljedeći iskaz stvara vektor nulte duljine tipa float s imenom vtr:

vektor<plutati>vtr;

naziv vektora (n)

Time se stvara vektor s n elemenata tipa T. Izjava za ovaj vektor s četiri plutajuća elementa je sljedeća:

vektor<plutati>vtr(4);

naziv vektora (n, t)

Time se stvara vektor od n elemenata inicijaliziranih na vrijednost t. Sljedeća izjava stvara vektor od 5 elemenata, pri čemu svaki element ima vrijednost 3,4:

vektor<plutati>vtr(5, 3.4);

Konstrukcija s inicijalizacijom

Vektor se može konstruirati (stvoriti) i inicijalizirati istovremeno, na jedan od sljedeća dva načina:

vektor<plutati>vtr= {1.1, 2.2, 3.3, 4.4};

Ili

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};

Imajte na umu da ne postoje zagrade odmah nakon naziva objekta. Zagrade koje se koriste odmah nakon naziva objekta trebaju imati popis inicijalizatora, kako slijedi:

vektor<plutati>vtr({1.1, 2.2, 3.3, 4.4});

Vektor se kasnije može konstruirati i inicijalizirati s popisom inicijalizatora. U ovom slučaju zagrade se neće koristiti:

vektor<plutati>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

vektor V2 (V1)

Ovo je konstruktor kopije. On stvara vektor V2 kao kopiju vektora V1. Sljedeći kod to ilustrira:

vektor<plutati>vtr1(5, 3.4);
vektor<plutati>vtr2(vtr1);

Dodjela vektora tijekom izgradnje

Tijekom izgradnje može se stvoriti prazan vektor dok mu je dodijeljen drugi, kako slijedi:

vektor<plutati>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<plutati>vtr2=vtr1;

Druga izjava je ekvivalentna:

vektor<plutati>vtr2= {1.1, 2.2, 3.3, 4.4};

const Vector

Const vektor je vektor čiji se elementi ne mogu mijenjati. Vrijednosti u ovom vektoru su samo za čitanje. Kada se stvori, vektor izgleda ovako:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};

U ovom vektorskom tipu nijedan element se ne može dodati ili ukloniti. Štoviše, nijedna vrijednost se ne može promijeniti.

Konstrukcija s Iteratorom

Predložak pruža generički prikaz za tip podataka. Iterator pruža generički prikaz skeniranja kroz vrijednosti spremnika. Sintaksa za stvaranje vektora s iteratorom je sljedeća:

predložak<klasa InputIterator>
vektor(Prvo InputIterator,InputIterator zadnji,konstDodjeljivač& =Dodjeljivač());

Ovo konstruira vektor za raspon [prvi, zadnji) pomoću navedenog alokatora, o čemu će biti riječi kasnije u ovom članku.

Uništavanje vektora

Da biste uništili vektor, jednostavno dopustite da izađe iz opsega i uništavanje se rukuje automatski.

Vektorski kapacitet

size_type capacity () const noexcept

Ukupni broj elemenata koje vektor može držati bez potrebe za preraspodjelom vraća funkcija kapaciteta kapaciteta. Kodni segment za to je sljedeći:

vektor<plutati>vtr(4);
intna jedan=vtr.kapacitet();
trošak<<na jedan<< ' n';

Izlaz je 4.

rezerva (n)

Memorijski prostor nije uvijek slobodno dostupan. Dodatni prostor može se rezervirati unaprijed. Razmotrite sljedeći segment koda:

vektor<plutati>vtr(4);
vtr.pričuva(6);
trošak<<vtr.kapacitet() << ' n';

Izlaz je 6. Dakle, dodatni prostor rezerviran je 6 - 4 = 2 elementa. Funkcija vraća void.

size () const noexcept

Time se vraća broj elemenata u vektoru. Sljedeći kôd ilustrira ovu funkciju:

vektor<plutati>vtr(4);
plutatis=vtr.veličina();
trošak<<s<< ' n';

Izlaz je 4.

smanjiti da stane()

Nakon što se vektoru s funkcijom Reserve () da dodatni kapacitet, vektor se može smanjiti tako da odgovara njegovoj izvornoj veličini. Sljedeći kod to ilustrira:

vektor<plutati>vtr(4);
vtr.pričuva(6);
vtr.smanjiti da stane();
ints=vtr.veličina();
trošak<<s<< ' n';

Izlaz je 4, a ne 6. Funkcija vraća void.

promijeni veličinu (sz), promijeni veličinu (sz, c)

Time se mijenja vektor. Ako je nova veličina manja od stare, tada se elementi prema kraju brišu. Ako je nova veličina duža, tada se pred kraj dodaje neka zadana vrijednost. Da biste dobili određenu dodanu vrijednost, koristite funkciju resize () s dva argumenta. Sljedeći segment koda ilustrira korištenje ove dvije funkcije:

vektor<plutati>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.promijeniti veličinu(2);
trošak<< 'Nova veličina vtr1:' <<vtr1.veličina() << ' n';
vektor<plutati>vtr2{1.1, 2.2};
vtr2.promijeniti veličinu(4, 8.8);
trošak<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Izlaz je sljedeći:

Nova veličina vtr1: 2
vtr2: 1,1 2,2 8,8 8,8

Funkcije vraćaju void.

empty () const noexcept

Ova funkcija vraća 1 za true ako nema elemenata u vektoru i 0 za false ako je vektor prazan. Ako vektor ima 4 lokacije za određenu vrstu podataka, kao što je float, bez ikakve plutajuće vrijednosti, tada taj vektor nije prazan. Sljedeći kod to ilustrira:

vektor<plutati>vtr;
trošak<<vtr.prazan() << ' n';
vektor<plutati>vt(4);
trošak<<tako daprazan() << ' n';

vektor<plutati>v(4,3.5);
trošak<<v.prazan() << ' n';

Izlaz je sljedeći:

1
0
0

Pristup vektorskim elementima

Vektor se može skriptirati (indeksirati) poput niza. Brojanje indeksa počinje od nule.

vectorName [i]

Operacija vectorName [i] vraća referencu na element na ithindeks vektora. Sljedeći kod daje 3.3 za gornji vektor:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr[2];
trošak<<fl<< ' n';

vectorName [i] const

Operacija vectorName [i] const izvodi se umjesto vectorName [i] kada je vektor konstantan vektor. Ova se operacija koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr[2];
trošak<<fl<< ' n';

Izraz vraća stalnu referencu na ithelement vektora.

Dodjeljivanje vrijednosti pomoću Subscript

Vrijednost se može dodijeliti ne-konstantnom vektoru, kako slijedi:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
trošak<<vtr[2] << ' n';

Izlaz je 8,8.

vectorName.at (i)

vectorName.at (i) je poput vectorName [i], ali vectorName.at (i) je pouzdaniji. Sljedeći kôd pokazuje kako se ovaj vektor treba koristiti:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.na(2);
trošak<<fl<< ' n';
na()je vektorski članfunkcija.

vectorName.at (i) const

vectorName.at (i) const je poput vectorName [i] const, ali vectorName.at (i) const je pouzdaniji. vectorName.at (i) const se izvodi umjesto vectorName.at (i) kada je vektor konstantan vektor. Ovaj vektor se koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.na(2);
trošak<<fl<< ' n';
na() konstje vektorski članfunkcija.

Dodjeljivanje vrijednosti funkcijom at ()

Vrijednost se može dodijeliti nekonstantnom vektoru s funkcijom at (), kako slijedi:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vtr.na(2) = 8.8;
trošak<<vtr[2] << ' n';

Izlaz je 8,8.

Problem sa podnaslovom

Problem sa skriptiranjem (indeksiranjem) je taj što ako je indeks izvan raspona, može se vratiti nula ili se može pojaviti greška tijekom izvođenja.

ispred()

Ovo vraća referencu na prvi element vektora bez uklanjanja elementa. Izlaz sljedećeg koda je 1.1.

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.ispred();
trošak<<fl<< ' n';

Element se ne uklanja iz vektora.

front () konst

Kada vektorskoj konstrukciji prethodi const, umjesto front () izvodi se izraz front () const. Ovo se koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.ispred();
trošak<<fl<< ' n';

Vraća se stalna referenca. Element se ne uklanja iz vektora.

leđa()

Ovo vraća referencu na posljednji element vektora bez uklanjanja elementa. Izlaz sljedećeg koda je 4.4.

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.leđa();
trošak<<fl<< ' n';

natrag () const

Kad vektorskoj konstrukciji prethodi const, umjesto back () izvodi se izraz back () const. Ovo se koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
plutatifl=vtr.leđa();
trošak<<fl<< ' n';

Vraća se stalna referenca. Element se ne uklanja iz vektora.

Vektorski pristup podacima

data () noexcept; data () const noexcept;

Bilo koji od ovih vraća pokazivač takav da je [data (), data () + size ()) važeći raspon.

To će biti detaljnije obrađeno kasnije u članku.

Vraćanje iteratora i vektora

Ponavljač je poput pokazivača, ali ima više funkcija od pokazivača.

begin () noexcept

Vraća iterator koji pokazuje na prvi element vektora, kao u sljedećem segmentu koda:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::iteratoriter=vtr.početi();
trošak<< *iter<< ' n';

Izlaz je 1,1. Imajte na umu da je deklaracija koja prima iterator deklarirana. Iterator se dereferencira u povratnom izrazu kako bi se dobila vrijednost na isti način na koji se pokazivač dereferencira.

begin () const noexcept;

Vraća iterator koji pokazuje na prvi element vektora. Kad vektorskoj konstrukciji prethodi const, umjesto begin () izvodi se izraz begin () const. Pod ovim uvjetom, odgovarajući element u vektoru ne može se mijenjati. Ovo se koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::const_iteratoriter=vtr.početi();
trošak<< *iter<< ' n';

Izlaz je 1,1. Imajte na umu da je const_iterator ovaj put korišten umjesto samo iteratora za primanje vraćenog iteratora.

end () noexcept

Vraća iterator koji pokazuje neposredno iza zadnjeg elementa vektora. Razmotrite sljedeći segment koda:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::iteratoriter=vtr.kraj();
trošak<< *iter<< ' n';

Izlaz je 0, što je besmisleno jer nema konkretnog elementa osim zadnjeg elementa.

end () const noexcept

Vraća iterator koji pokazuje neposredno iza zadnjeg elementa vektora. Kada vektorskoj konstrukciji prethodi const, umjesto end () izvodi se izraz end () const. Razmotrite sljedeći segment koda:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::const_iteratoriter=vtr.kraj();
trošak<< *iter<< ' n';

Izlaz je 0. Imajte na umu da je ovaj put const_iterator korišten umjesto samo iteratora za primanje vraćenog iteratora.

Obrnuto ponavljanje

Moguće je imati iterator koji ponavlja od kraja do neposredno prije prvog elementa.

rbegin () noexcept

Vraća iterator koji pokazuje na posljednji element vektora, kao u sljedećem segmentu koda:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::obrnuti_pisacrIter=vtr.rpočeti();
trošak<< *rIter<< ' n';

Izlaz je 4,4.

Imajte na umu da je deklaracija koja prima obrnuti iterator deklarirana. Iterator se dereferencira u povratnom izrazu kako bi se dobila vrijednost na isti način na koji se pokazivač dereferencira.

rbegin () const noexcept;

Vraća iterator koji pokazuje na posljednji element vektora. Kad vektorskoj konstrukciji prethodi const, umjesto rbegin () izvodi se izraz rbegin () const. Pod ovim uvjetom, odgovarajući element u vektoru ne može se mijenjati. Ova se značajka koristi u sljedećem kodu:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::const_reverse_iteratorrIter=vtr.rpočeti();
trošak<< *rIter<< ' n';

Izlaz je 4,4.

Imajte na umu da je const_reverse_iterator ovaj put korišten, umjesto samo reverse_iterator, za primanje vraćenog iteratora.

render () noexcept

Vraća iterator koji pokazuje neposredno prije prvog elementa vektora. Razmotrite sljedeći segment koda:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::obrnuti_pisacrIter=vtr.pravi();
trošak<< *rIter<< ' n';

Izlaz je 0, što je besmisleno jer ne postoji konkretan element neposredno prije prvog elementa.

render () const noexcept

Vraća iterator koji pokazuje neposredno prije prvog elementa vektora. Kada vektorskoj konstrukciji prethodi const, umjesto rend () izvodi se izraz rend () const. Razmotrite sljedeći segment koda:

konstvektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vektor<plutati> ::const_reverse_iteratorrIter=vtr.pravi();
trošak<< *rIter<< ' n';

Izlaz je 0.

Imajte na umu da je const_reverse_iterator ovaj put korišten, umjesto samo reverse_iterator, za primanje vraćenog iteratora.

Vektorski modifikatori

Modifikator koji mijenja vektor može uzeti ili vratiti iterator.

a.mjesta (p, args)

Ubacuje objekt tipa T konstruiran sa std :: forward (args) ... prije p.

Za detalje - vidi kasnije

insert (iteratorPosition, value)

Ubacuje kopiju vrijednosti na iteratorski položaj vektora. Vraća iterator (položaj) u vektoru na koji je kopija postavljena. Sljedeći kôd pokazuje gdje je vrijednost postavljena:

vektor<int>vtr{10, dvadeset, 30, 40};
vektor<int> ::iteratoriter=vtr.početi();
++iter;
++iter;
vtr.umetnuti(iter, 25);
trošak<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' n';

Izlaz je: 20 25 30.

Imajte na umu da je iterator bio napredan (povećan) baš kao i pokazivač.

Također se može umetnuti popis inicijalizatora, kao što prikazuje sljedeći kôd:

vektor<int>vtr{10, dvadeset, 30, 40};
vektor<int> ::iteratoriter=vtr.početi();
++iter;
++iter;
vtr.umetnuti(iter, {25, 28});

trošak<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' n';

Izlaz je: 20 25 28 30.

brisanje (položaj)

Uklanja element na položaju na koji pokazuje iterator, a zatim vraća položaj iteratora. Sljedeći kod to ilustrira:

vektor<int>vtr{10, dvadeset, 30, 40};
vektor<int> ::iteratoriter=vtr.početi();
++iter;
++iter;
vtr.izbrisati(iter);
trošak<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' n';

Izlaz je: 10 20 40

push_back (t), push_back (rv)

Koristi se za dodavanje jednog elementa na kraju vektora. Upotrijebite push_back (t) na sljedeći način:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vtr.odgurnuti(5.5);
plutatifl=vtr[4];
trošak<<fl<< ' n';

Izlaz je 5,5.

odgurnuti(rv): -vidimo se kasnije.

pop_back ()

Uklanja zadnji element bez vraćanja. Veličina vektora se smanjuje za 1. Sljedeći kod to ilustrira:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
plutatis=vtr.veličina();
trošak<<s<< ' n';

Izlaz je 3.

a.swap (b)

Mogu se zamijeniti dva vektora, kao što je prikazano u sljedećem segmentu koda:

vektor<plutati>vtr1{1.1, 2.2, 3.3, 4.4};
vektor<plutati>vtr2{10, dvadeset};
vtr1.zamijeniti(vtr2);
trošak<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' n';

trošak<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

Izlaz je:

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

Imajte na umu da se duljina vektora povećava, ako je potrebno. Također, vrijednosti koje nisu imale zamjene zamjenjuju se nekom zadanom vrijednošću.

čisto()

Uklanja sve elemente iz vektora, kao što prikazuje sljedeći segment koda:

vektor<plutati>vtr{1.1, 2.2, 3.3, 4.4};
vtr.čisto();
trošak<<vtr.veličina() << ' n';

Izlaz je 0.

Operatori jednakosti i odnosa za vektore

Operater ==

Vraća 1 za true ako dva vektora imaju istu veličinu i odgovarajući elementi su jednaki; u suprotnom, vraća 0 za false. Na primjer:

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

Izlaz je 0.

! = Operater

Vraća 1 za true ako dva vektora nemaju istu veličinu i/ili odgovarajući elementi nisu jednaki; u suprotnom, vraća 0 za false. Na primjer:

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

Izlaz je 1.

The

Vraća 1 za true ako je prvi vektor početni podskup drugog vektora, pri čemu su elementi dva jednaka dijela isti i istim redoslijedom. Ako su oba vektora iste veličine i kreću se slijeva nadesno, a u prvom vektoru naiđe na element koji je manji od odgovarajućeg elementa u drugom vektoru, tada će 1 ipak biti vraćen. U suprotnom se vraća 0 za false. Na primjer:

vektor<int>U{3, 1, 1};
vektor<int>V.{3, 2, 1};
bool bl=U<V.;
trošak<<bl<< ' n';

Izlaz je 1.

> Operater

Returns !(U

The<= Operator

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

Operator> =

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

Zaključak

Vektor je primjer spremnika slijeda. Vektor je bolji oblik običnog niza i izveden je iz klase. Vektori imaju metode koje su klasificirane prema: konstrukcija i dodjela, kapacitet, pristup elementima, pristup podacima, iteratori, modifikatori i numerički preopterećeni operatori.

Postoje i drugi spremnici slijedova, koji se nazivaju lista, lista naprijed i niz. Ako zadatak uključuje učestalo umetanje i brisanje u sredini niza, tada bi se trebao koristiti popis ili popis_ naprijed. Ako zadatak uključuje učestalo umetanje i brisanje na početku ili na kraju niza, tada se treba koristiti deque. Dakle, vektore treba koristiti samo kada ovakve operacije nisu važne.