Cilj ovog malog teksta je da ilustruje sasvim jednostavnu i minimalističku upotrebu klase vector iz standardne C++ biblioteke. STL je naravno mnogo više od toga, ali ćemo koncepte, filozofiju i arhitekturu ove moćne biblioteke za sad ostaviti po strani i pokušati da budemo kratki i praktični.
Čemu služi vector? Najbolje je da upotrebu ove šablon klase ilustrujemo primerom:
#include <vector>
using namespace std;
int main()
{
vector<int> brojevi; // deklaracija niza celobrojnih brojeva
brojevi.push_back(1); // brojevi => {1}
brojevi.push_back(2); // brojevi => {1,2}
brojevi.push_back(3); // brojevi => {1,2,3)
brojevi[1] = 5; // brojevi => {1,5,3)
int duzina = brojevi.size(); // duzina => 3
}
Očigledno, vector je apstrakcija koja nam omogućava da lakše radimo sa dinamičkim nizovima. Kako bi gornji primer izgledao ako bismo radili sa "golim" pointerima?
int main()
{
int* brojevi = new int[3]; // Moramo da navedemo duzinu niza kod deklaracije
brojevi[0] = 1; // brojevi => {1,?,?}>
brojevi[1] = 2; // brojevi => {1,2,?}
brojevi[2] = 3; // brojevi => {1,2,3)
brojevi[1] = 5; // brojevi => {1,5,3)
int duzina = 3; // Ne postoji mogucnost da programski odredimo duzinu niza
delete[] brojevi; // Ako ovo zaboravimo, rezultat je "curenje memorije"
}
Šablon klasa vector ima još puno drugih mogućnosti. Ovde smo ilustrovali da upotreba svega 3 funkcije: push_back, size i operator [] već može da učini rad sa dinamičkim nizovima u C++u prijatnijim.