- Lista jest ciągłym kontenerem, podczas gdy wektor jest kontenerem nieciągłym, tj. lista przechowuje elementy w pamięci ciągłej, a wektory w pamięci nieciągłej.
- Wstawianie i usuwanie w środku wektora jest bardzo kosztowne, gdyż zajmuje dużo czasu na przesuwanie wszystkich elementów. Lista linków rozwiązuje ten problem i jest implementowana przy użyciu kontenera list.
- Lista obsługuje dwukierunkowość i zapewnia efektywny sposób operacji wstawiania i usuwania.
- Przechodzenie na liście jest powolne, ponieważ dostęp do elementów listy jest uzyskiwany sekwencyjnie, podczas gdy wektor obsługuje dostęp losowy.
Szablon listy
#include #include using namespace std; int main() { list l; }
Tworzy pustą listę wartości typu całkowitego.
Listę można także inicjalizować parametrami.
#include #include using namespace std; int main() { list l{1,2,3,4}; }
Listę można zainicjować na dwa sposoby.
list new_list{1,2,3,4}; or list new_list = {1,2,3,4};
Funkcje listowe w C++
Poniżej znajdują się funkcje członkowskie listy:
metoda | Opis |
---|---|
wstawić() | Wstawia nowy element przed pozycją wskazywaną przez iterator. |
push_back() | Dodaje nowy element na końcu wektora. |
push_front() | Dodaje nowy element z przodu. |
pop_back() | Usuwa ostatni element. |
pop_front() | Usuwa pierwszy element. |
pusty() | Sprawdza, czy lista jest pusta, czy nie. |
rozmiar() | Znajduje liczbę elementów znajdujących się na liście. |
największy rozmiar() | Znajduje maksymalny rozmiar listy. |
przód() | Zwraca pierwszy element listy. |
z powrotem() | Zwraca ostatni element listy. |
zamieniać() | Zamienia dwie listy, gdy typ obu list jest taki sam. |
odwracać() | Odwraca elementy listy. |
sortować() | Sortuje elementy listy w kolejności rosnącej. |
łączyć() | Łączy dwie posortowane listy. |
splatać() | Wstawia nową listę do listy wywołującej. |
unikalny() | Usuwa wszystkie zduplikowane elementy z listy. |
Zmień rozmiar() | Zmienia rozmiar kontenera listy. |
przydzielać() | Przypisuje nowy element do kontenera listy. |
Lokalizacja() | Wstawia nowy element w określonej pozycji. |
miejsce_powrót() | Wstawia nowy element na końcu wektora. |
miejsce_front() | Wstawia nowy element na początku listy. |