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

Usunięta treść Dodana treść
Mythov (dyskusja | edycje)
Mythov (dyskusja | edycje)
→‎Listy jednokierunkowe: dodano metody slist
Linia 186:
Funkcja erase z kolei działa wolniej, gdyż po usunięciu danego elementu wskaźnik tego stojącego przed wykasowanym elementem, musi wskazywać na element stojący za usuniętym elementem.<br\ >
Stąd też postanowiono poszerzyć arsenał list jednokierunkowych względem list dwukierunkowych o nowe metody, które mogą zastąpić owe powolne funkcje, gdyż mają podobne działanie a wykonują się znacznie szybciej. Oto lista nowych metod:
 
{{w trakcie tworzenia 1|Mythov}}
{| class="wikitable"
! prototyp
! opis działania
|----
| void splice_after(iterator pos, list<T>& ls)
| wstawia zawartość listy ls za elementem wskazywanym przez pos (ls staje się pusta)
|----
| void splice_after(iterator pos, iterator poczatek, iterator koniec)
| usuwa elementy z przedziału (poczatek;koniec+1> i wstawia za elementem pos w obecnej liście
|----
| iterator insert_after(iterator pos)
| dostawia nowy element za pos
|----
| iterator insert_after(iterator pos, T obj)
| wstawia element obj za wskazywaną przez iterator pos pozycją i zwraca iterator do dostawionego elementu (stały czas wykonania), przy czym pos != end()
|----
| void insert_after(iterator pos, size_t n, const T obj)
| wstawia n kopii argumentu obj za pozycją wskazywaną przez iterator pos, przy czym pos != end()
|----
| void insert_after(iterator pos, InputIterator poczatek, InputIterator koniec)
| wstawia za pozycją wskazywaną przez iterator pos elementy z przedziału <poczatek;koniec>, przy czym pos != end()
|----
| void insert_after(iterator pos, T* poczatek, T* koniec)
| wstawia za pozycją wskazywaną przez iterator pos elementy z przedziału <poczatek;koniec>, przy czym pos != end()
|----
| iterator erase_after(iterator pos)
| usuwa następny element za pos i zwraca iterator do następnego elementu (stały czas wykonania)
|----
| iterator erase_after(iterator poczatek, iterator koniec)
| usuwa elementy z przedziału (poczatek;koniec> i zwraca iterator do elementu za nimi
|}