C++/Vector: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Wit3k (dyskusja | edycje)
mNie podano opisu zmian
Mythov (dyskusja | edycje)
dodana tabela z metodami klasy vector
Linia 84:
 
Ale iteratory są o wiele bardziej skomplikowane niż tu zostało to przedstawione. Jest pięć rodzajów iteratorów ogólnych, bo każda klasa taka jak vector ma w sobie zdefiniowany iterator. Iteratory będziemy wykorzystywać prawie w każdym kontenerze (struktura do przechowywania danych) jakim jest np. vector.
Teraz jak już wiemy co to są te iteratory możemy przejść do metod klasy vector i algorytmów uogólnionych, które działają najlepiej na tych iteratorach. Klasa vector nie ma sama w sobie zbyt wiele metod do ciekawych operacji, ale tego braku uzupełnieniem jest zbiór algorytmów uogólnionych. Dalsze poznawanie metod klasy vector pozostawiam już wam, a o algorytmachktórych będę jeszcze pisał później. Jako podpowiedz do metod wektora wykorzystujących iteratory powiem tylko że np. metoda insert() i jej odmiany są dość interesujące i warte zapoznania sie z nimi.
<br\ >
Lista metod klasy vector (gdzie iterator to vector<T>::iterator - podmiana dla czytelności):
 
{| class="wikitable"
! prototyp
! opis działania
|----
| size_t size()
| zwraca obecną ilość elementów wektora.
|----
| size_t capacity()
| zwraca ilość elementów, którą wektor jest w stanie pomieścić przed przeniesieniem go do większego obszaru pamięci.
|----
| size_t max_size()
| zwraca ilość elementów, którą maksymalnie może pomieścić wektor
|----
| bool empty()
| zwraca true jeśli wektor nie przechowuje żadnych zmiennych
|----
| void reserve(size_t n)
| rezerwuje pamięć na n elementów co zapobiega przenoszeniu wektora w pamięci przed osiągnięciem tej liczby
|----
| void push_back(const T obj)
| dodaje na końcu wektora kopię przekazanego argumentu
|----
| void pop_back()
| usuwa ostatni element z wektora (wykonywane w stałym czasie)
|----
| void clear()
| usuwa wszystkie elementy z wektora
|----
| void assign(size_t n, const T obj)
| czyści wektor i wypełnia go n kopiami argumentu obj
|----
| iterator assign(iterator poczatek, iterator koniec)
| czyści wektor i wypełnia go elementami z innego wektora z przedziału <poczatek;koniec>
|----
| iterator insert(iterator pos, T obj)
| wstawia element obj '''przed''' wskazywaną przez iterator pos pozycją i zwraca iterator do dostawionego elementu (powolna funkcja)
|----
| void insert(iterator pos, size_t n, const T obj)
| wstawia n kopii argumentu obj '''przed''' pozycją wskazywaną przez iterator pos
|----
| void insert(iterator pos, iterator poczatek, iterator koniec)
| wstawia '''przed''' pozycją wskazywaną przez iterator pos elementy między iteratorami początek i koniec (włącznie)
|----
| iterator erase(iterator pos)
| usuwa element wskazywany przez pos i zwraca iterator do następnego elementu
|----
| iterator erase(iterator poczatek, iterator koniec)
| usuwa elementy z przedziału <poczatek;koniec> i zwraca iterator do elementu za nimi
|----
| T& front()
| zwraca referencję do pierwszego elementu wektora
|----
| T& back()
| zwraca referencję do ostatniego elementu wektora
|----
| iterator begin()
| zwraca iterator do pierwszego elementu wektora (często mylone z front())
|----
| iterator end()
| zwraca iterator ustawiony '''za''' ostatnim elementem wektora
|----
| iterator rbegin()
| zwraca odwrócony iterator do pierwszego elementu
|----
| iterator rend()
| zwraca odwrócony iterator do ostatniego elementu
|}
 
<noinclude>