Prvi korak sa STL bibliotekom
Nemanja Trifunović (25.06.2005.) 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.

Dodajte novi komentar

Ime:  

Komentar:  


Koliko je 2 + 3 =    
 



Postojeći komentari