Extras din laborator
Pentru folosirea containerului vector se da antetul:
#include <vector>
TDA vector generalizeaza conceptul de tablou cu o dimensiune. Abstractizarea permite marirea sau micsorarea colectiei în cursul executiei.
Accesul la orice element se face în timp constant. Operatorul de indexare nu asigura verificarea indicelui (daca se încadreaza în domeniu).
Inserarea si stergerea la sfârsit se face în O(1), iar în celelalte pozitii în O(n).
Fiind un container parametrizat, la instantiere se declara:
vector<int> x(10,1); //vector de 10 intregi initializati cu 1
vector<double> y(20);//vector de 20 reali neinitializati
1. Operatii asupra TDA vector.
1.constructori
vector<T> v; //c-tor implicit
vector<T>v(int); //c-tor cu dimens. initializata
vector<T>v(int, T); //c-tor cu dimensiune si
//valoare initiala
vector<T>v(vec); //c-tor de copiere
2.acces la elemente
v[i] //elementul din pozitia i
v.front() //primul element
v.back() //ultimul element
3.inserari
v.push_back(T); //adaugare element la sfarsit
v.insert(iterator, T);//inserare element dupa iterator
v.swap(vector<T>); //interschimb cu alt vector
4.stergeri
v.pop_back(); //sterge ultimul element
v.erase(iterator); //sterge elementul indicat de iterator
v.erase(iterator, iterator); //sterge elementele din interval
Folosirea functiilor insert() si erase() invalideaza toti iteratorii.
5. dimensionari
v.capacity(); //memoria rezervata pt.vector
v.size(); //memoria ocupata de vector
v.resize(int, T);//schimbarea dimensiunii
v.reserve(); //realocare memorie pt.vector
v.empty(); //test vector vid
6. iteratori
vector<T>::iterator it; //declara un iterator
v.begin(); //iterator de pornire(la primul elem)
v.end(); //iterator de oprire(dupa ultimul)
2. Algoritmi generici.
//pune in intervalul[p,u) valoarea val
template <class FwdIt, class T>
void fill(FwdIt p,FwdIt u, const T& val)
//copiaza elementele din intervalul [p,u) la destinatia d,
//intoarce pozitia de dupa ultima
template<class InIt, class OutIt>
OutIt copy(InIt p, InIt u, OutIt d);
//determina prima pozitie i din intervalul[p,u)astfel ca *i<*j sa fie fals
template<class FwdIt>
FwdIt max_element(FwdIt p, FwdIt u);
//determina prima pozitie i din intervalul[p,u)astfel ca pr(*i,*j) sa fie fals
template<class FwdIt, class Pred>
FwdIt max_element(FwdIt p, FwdIt u, Pred pr);
Preview document
Conținut arhivă zip
- Vector.doc