Przestrzenie nazw
Warianty
Działania

std::forward_list

Z cppreference.com
< cpp‎ | container
Zdefiniowane w nagłówku <forward_list>
template<

    class T,
    class Allocator = std::allocator<T>

> class forward_list;
(1) (od C++11)

std::forward_list jest kontenerem pozwalającym na wstawianie i usuwanie elementów w dowolnym miejscu w kontenerze, w czasie stałym. Szybki dostęp bezpośredni do elementów nie jest wspierany. Kontener ten jest zwykle zaimplementowany jako lista jednokierunkowa. and essentially does not have any overhead compared to its implementation in C.(wymaga tłumaczenia) W porównaniu do std::list zapewnia mniejsze zużycie pamięci, kosztem braku możliwości iterowania w obydwu kierunkach.

Dodawanie, usuwanie ani przenoszenie elementów wewnątrz listy / pomiędzy listami nie unieważnia iteratorów ani referencji odnoszących się w danym momencie do innych elementów listy. Iterator jest unieważniany tylko wtedy, gdy odpowiadający mu element jest usuwany. Jednakże, iteratory i referencje zostają unieważnione, gdy element, do którego się odnoszą zostaje usunięty (za pomocą erase_after) z listy.

std::forward_list spełnia wymagania Container (z wyjątkiem metody size i tego, że złożoność obliczeniowa operator== jest zawsze liniowa), AllocatorAwareContainer i SequenceContainer.

Spis treści

[edytuj] Parametry szablonu

T - Typ elementów.
Wymagania nałożone na elementy zależą od rzeczywiście wykonywanych na kontenerze operacji. Z reguły jest wymagane, aby typ elementu był typem kompletnym i spełniał wymagania Erasable, lecz wiele metod nakłada bardziej rygorystyczne warunki.

[edit]

Allocator - Alokator wykorzystywany do uzyskiwania/zwalniania pamięci i tworzenia/niszczenia elementów w tej pamięci. Typ musi spełniać wymogi Allocator. Zachowanie jest niezdefiniowane, jeśli Allocator::value_type nie jest identyczny jak T. [edit]

[edytuj] Typy składowe

Typ składowy Definicja
value_type T [edit]
allocator_type Allocator [edit]
size_type Typ całkowitoliczbowy bez znaku (zwykle std::size_t) [edit]
difference_type Typ całkowitoliczbowy ze znakiem (zwykle std::ptrdiff_t) [edit]
reference value_type& [edit]
const_reference const value_type& [edit]
pointer std::allocator_traits<Allocator>::pointer [edit]
const_pointer std::allocator_traits<Allocator>::const_pointer [edit]
iterator ForwardIterator [edit]
const_iterator Constant ForwardIterator [edit]

[edytuj] Metody

Konstruuje forward_list
(publiczna metoda) [edit]
Niszczy forward_list
(publiczna metoda) [edit]
przypisuje wartości do kontenera
(publiczna metoda) [edit]
przypisuje wartości do kontenera
(publiczna metoda) [edit]
zwraca skojarzony alokator
(publiczna metoda) [edit]
Dostęp do elementów
dostęp do pierwszego elementu
(publiczna metoda) [edit]
Iteratory
zwraca iterator na element przed początkiem listy
(publiczna metoda) [edit]
zwraca iterator na początek kontenera
(publiczna metoda) [edit]
zwraca iterator za koniec kontenera
(publiczna metoda) [edit]
Pojemność
sprawdza, czy kontener jest pusty
(publiczna metoda) [edit]
zwraca maksymalną możliwą liczbę elementów
(publiczna metoda) [edit]
Modyfikatory
czyści zawartość
(publiczna metoda) [edit]
wstawia elementy za wskazanym elementem
(publiczna metoda) [edit]
tworzy elementy "w miejscu" za wskazanym elementem
(publiczna metoda) [edit]
usuwa element za wskazanym elementem
(publiczna metoda) [edit]
wstawia element na początek
(publiczna metoda) [edit]
konstruuje element "w miejscu" na początku
(publiczna metoda) [edit]
usuwa pierwszy element
(publiczna metoda) [edit]
zmienia liczbę przechowywanych elementów
(publiczna metoda) [edit]
zamienia zawartość
(publiczna metoda) [edit]
Operacje
scala dwie posortowane listy
(publiczna metoda) [edit]
przenosi elementy z innego kontenera forward_list
(publiczna metoda) [edit]
usuwa elementy spełniające wskazane kryteria
(publiczna metoda) [edit]
odwraca kolejność elementów
(publiczna metoda) [edit]
usuwa następujące po sobie duplikaty
(publiczna metoda) [edit]
sortuje elementy
(publiczna metoda) [edit]

[edytuj] Funkcje operujące na zawartości

leksykograficznie porównuje wartości w forward_list
(szablon funkcji) [edit]
specjalizacja dla algorytmu std::swap
(szablon funkcji) [edit]