.:: Tablice dynamiczne w C++ ::.
Witam, opisze w tym arcie korzystanie z dynamicznych tablic w c++. Co to jest? Otóż jeśli zadeklarujesz zwykła tablica np. int tab[20] to nie możesz do niej włożyć więcej niż 20 elementów, dynamiczne tablice znoszą te ograniczenia czyniąc program elastyczniejszym.
INCLUDE'Y
Wszystko, czego potrzebujesz to #include<vector> na początku programu.
DEKLARACJA
Prosta sprawa: std::vector<typ> nazwa; opcjonalnie
std::vector<typ> nazwa(rozmiar);
UZYCIE
nazwa.at(nr)
lub zwraca obiekt o podanym numerze, obiekt musi juz ostniec
nazwa[nr]
nazwa.push_back(obiekt) umieszcza obiekt na koncu wektora
nazwa.push_front() umieszcza obiekt na poczatku
wektora
nazwa.pop_back() usuwa ostatni element wektora
nazwa.pop_front() usuwa pierwszy element wektora
nazwa.front() zwraca pierwszy element wektora
nazwa.back() zwraca ostatni element wektora
nazwa.size() zwraca ilosc elementow w wektorze
nazwa.max_size() zwraca ilosc elementow ktore jeszcze zmieszcza sie w pamieci
nazwa.insert(poz,obiekt) umieszcza obiekt na pozycji poz
nazwa.insert(poz,poz_start, umieszcza ciag obiektow z innego wektora od poz_start do poz_start) poz_end(bez poz_end) na pozycje poz
nazwa.insert(poz,ilosc,obiekt) wstawia obiekt razy ilosc na pozycje poz
nazwa.erase(poz) usuwa obiekt o podanym nr
nazwa.erase(poz_start,poz_end) usuwa ciag obiektow od poz_start do poz_end(bez poz_end)
ITERATORY
Jedna z wad wektorow jest to ze nie mozna uzywac wskaznikow do nich np w ten sposob.
wsk=&nazwa;
wsk+=2;
Wsk *nie* pokaze na 2 element. Aby wyeliminowac te niedogodnosc wymyslono iteratory. Uzywa sie ich tak samo jak wskaznikow. Np.
vector<typ>::iterator i;
i=nazwa.begin();
i=i+2;
Teraz i bedzie wskazywac na 2 element.Funkcja nazwa.begin() zwraca iterator wskazujacy na 1. element, a nazwa.end() zwraca iterator wskazujacy na ostatni element. Funkcje podane w dziale uzycie przyjmuja takze iteratory
ZAKONCZENIE