ALTE DOCUMENTE
|
|||||||||
Vectori
Conceptul de vector construit in C++ a fost proiectat pentru a permite o eficienta maxima la executie si memorie minima.
Este
de asemenea, mai ales cind se utilizeaza impreuna cu pointerii, un instrument
puternic pentru construirea unor facilitati de nivel inalt. 10310y2417k Noi putem, totusi,
sa ne plingem de faptul ca dimensiunea unui vector trebuie sa fie specificata
ca o
class vector
void set_size(int);
int& operator[](int);
int& elem(int i)
};
Functia size() returneaza numarul de elemente al vectorului; adica, indicii trebuie sa fie in domeniul 0..size()-1. Functia set_size() este furnizata pentru a schimba acea dimensiune, elem() furnizeaza acces la membri fara a verifica indexul, iar operator[] furnizeaza acces cu verificarea limitelor.
Ideea este de a avea clasa ca o structura de dimensiune fixa care controleaza accesul la memoria reala a vectorului, care este alocata prin constructorul vectorului utilizind operatorul new de alocare de memorie.
vector::vector(int s)
Noi putem declara vectori foarte asemanator cu vectorii care sint construiti in limbajul insusi:
vector v1(100);
vector v2(nelem*2-4);
Operatia de acces poate fi definita ca:
int& vector::operator[](int i)
Returnind o referinta se asigura ca notatia [] poate fi utilizata de ambele parti a unei atribuiri:
v1[x] = v2[y];
Functia ~vector() este un destructor; adica este o functie declarata pentru a fi apelata implicit cind obiectul unei clase iese in afara domeniului. Destructorul pentru o clasa C se numeste ~C. Daca noi o definim astfel:
vector::~vector()
ea va fi utilizata pentru a sterge operatorul si pentru a dezaloca spatiul alocat prin constructor, asa ca atunci cind un vector iese afara din domeniu, tot spatiul lui este eliberat si poate fi reutilizat.
|