Biblioteka C ++ - <lista>
Wprowadzenie
Lista to powszechnie używany kontener sekwencji. Kontener to obiekt przechowujący dane tego samego typu. Kontener listy jest zaimplementowany jako podwójnie połączona lista, dlatego zapewnia dwukierunkowy sekwencyjny dostęp do swoich danych.
Lista nie zapewnia szybkiego dostępu swobodnego, obsługuje tylko dostęp sekwencyjny w obu kierunkach. Lista umożliwia operację wstawiania i usuwania w dowolnym miejscu sekwencji w stałym czasie.
Elementy listy mogą być rozrzucone w różnych fragmentach pamięci. Kontener przechowuje niezbędne informacje, aby umożliwić sekwencyjny dostęp do swoich danych. Listy mogą się zmniejszać lub rozszerzać w razie potrzeby z obu końców w czasie wykonywania. Zapotrzebowanie na miejsce jest automatycznie wypełniane przez wewnętrzny podzielnik.
Listy o zerowym rozmiarze są również ważne. W takim przypadku list.begin () i list.end () wskazują na tę samą lokalizację. Ale zachowanie wywołania front () lub back () jest niezdefiniowane.
Definicja
Poniżej znajduje się definicja std :: list z pliku nagłówkowego <list>
template < class T, class Alloc = allocator<T> > class list;
Parametry
T - Typ zawartego elementu.
T można zastąpić dowolnym innym typem danych, w tym typem zdefiniowanym przez użytkownika.
Alloc - Typ obiektu alokatora.
Domyślnie używany jest szablon klasy alokatora, który definiuje najprostszy model alokacji pamięci i jest niezależny od wartości.
Typy członków
Następujące typy elementów członkowskich mogą być używane jako parametry lub zwracane typy przez funkcje składowe.
Sr.No. | Typy członków | Definicja |
---|---|---|
1 | typ wartości | T (pierwszy parametr szablonu) |
2 | Alokator_typ | Alloc (drugi parametr szablonu) |
3 | odniesienie | typ wartości& |
4 | const_reference | const value_type & |
5 | wskaźnik | typ wartości* |
6 | const_pointer | const value_type * |
7 | iterator | iterator dostępu swobodnego do typ_wartości |
8 | const_iterator | iterator dostępu swobodnego do const value_type |
9 | reverse_iterator | std :: reverse_iterator <iterator> |
10 | const_reverse_iterator | std :: reverse_iterator <const_iterator> |
11 | typ_rozmiaru | size_t |
12 | typ_różnicy | ptrdiff_t |
Funkcje z <lista>
Poniżej znajduje się lista wszystkich metod z nagłówka <list>.
Konstruktorzy
Sr.No. | Metoda i opis |
---|---|
1 | list :: list domyślny konstruktor Konstruuje pustą listę bez elementów. |
2 | list :: list fill konstruktor Konstrukty nową listę z n elementów oraz cesjonariusze Val każdego element listy. |
3 | list :: list fill konstruktor Konstruuje nową listę z n elementami i przypisuje zerową wartość do każdego elementu listy. |
4 | list :: list range konstruktor Tworzy listę zawierającą tyle elementów, ile zawiera zakres od pierwszego do ostatniego . |
5 | list :: list konstruktor kopiujący Tworzy listę z kopią każdego elementu obecnego na istniejącej liście. |
6 | list :: list Konstruktor przenoszenia Konstruuje listę z zawartością innych przy użyciu semantyki przenoszenia. |
7 | list :: list Initializer List Konstruktor Konstruuje listę z zawartością innych przy użyciu semantyki przenoszenia. |
Burzyciel
Sr.No. | Metoda i opis |
---|---|
1 | list :: ~ list Niszczy obiekt listy, zwalniając jego pamięć. |
Funkcje składowe
Sr.No. | Metoda i opis |
---|---|
1 | list :: przypisanie wersji zakresu Przypisuje nową wartość do listy, zastępując stare. |
2 | list :: przypisz wersję wypełnienia Przypisuje nowe wartości do listy, zastępując stare. |
3 | list :: przypisz wersję listy inicjalizacyjnej Przypisuje nowe wartości do listy, zastępując stare. |
4 | lista :: powrót Zwraca odniesienie do ostatniego elementu listy. |
5 | list :: begin Zwraca iterator dostępu swobodnego, który wskazuje na pierwszy element listy. |
6 | list :: cbegin Zwraca iterator o stałym dostępie swobodnym, który wskazuje początek listy. |
7 | lista :: cend Zwraca iterator o stałym dostępie swobodnym, który wskazuje koniec listy. |
8 | lista :: wyczyść Niszczy listę, usuwając wszystkie elementy z listy i ustawia rozmiar listy na zero. |
9 | lista :: crbegin Zwraca stałą iterator odwrotny wskazujący na ostatni element listy. |
10 | lista :: crend Zwraca stałą iterator odwrotny wskazujący na element teoretyczny poprzedzający pierwszy element na liście. |
11 | lista :: pozycja Rozszerza listę, wstawiając nowy element w danej pozycji. |
12 | list :: emplace_back Wstawia nowy element na koniec listy i zwiększa rozmiar listy o jeden. |
13 | list :: emplace_front Wstawia nowy element na początku listy i zwiększa rozmiar listy o jeden. |
14 | lista :: pusty Sprawdza, czy lista jest pusta, czy nie. |
15 | list :: end Zwraca iterator dostępu swobodnego, który wskazuje na ostatni element listy. |
16 | list :: erase pozycja wersja Usuwa pojedynczy element z listy. |
17 | list :: erase range wersja Usuwa zakres elementu z listy. |
18 | lista :: przód Zwraca odniesienie do pierwszego elementu listy. |
19 | list :: get_allocator Zwraca alokator powiązany z listą |
20 | lista :: wstaw wersję pojedynczego elementu Rozszerza iterator, wstawiając nowy element na pozycji na liście. |
21 | lista :: wstaw wersję wypełnienia Rozszerza listę, wstawiając nowe elementy do kontenera. |
22 | lista :: wstaw wersję zakresu Rozszerza listę, wstawiając nowe elementy do kontenera. |
23 | list :: insert move version Rozszerza listę, wstawiając nowy element do kontenera. |
24 | list :: insert wersja listy inicjalizacyjnej Rozszerza listę, wstawiając nowe elementy do kontenera |
25 | list :: max_size Zwraca maksymalną liczbę elementów, które może przechowywać lista. |
26 | list :: merge Łączy dwie posortowane listy w jedną. |
27 | list :: merge funkcja porównywania Łączy dwie posortowane listy w jedną. |
28 | list :: merge move version Łączy dwie posortowane listy w jedną przy użyciu semantyki przenoszenia. |
29 | list :: merge porównaj funkcję przenieś wersję Łączy dwie posortowane listy w jedną przy użyciu semantyki przenoszenia. |
30 | list :: operator = kopiuj wersję Przypisuje nowe treści do listy, zastępując stare. |
31 | list :: operator = przenieś wersję Przypisz nową zawartość do listy, zastępując stare. |
32 | list :: operator = wersja listy inicjalizacyjnej Przypisz nową zawartość do listy, zastępując stare. |
33 | list :: pop_back Usuwa ostatni element z listy. |
34 | list :: pop_front Usuwa pierwszy element z listy. |
35 | list :: push_back Wstawia nowy element na końcu listy. |
36 | list :: push_back move wersja Wstawia nowy element na końcu listy. |
37 | list :: push_front Wstawia nowy element na początku listy. |
38 | list :: push_front move wersja Wstawia nowy element na początku listy. |
39 | list :: rbegin Zwraca odwrotny iterator wskazujący na ostatni element listy. |
40 | lista :: usuń usuwa element (y) z listy, które pasują do wartości. |
41 | list :: remove_if usuwa elementy z listy spełniające warunek. |
42 | list :: rend Zwraca odwrotny iterator, który wskazuje odwrotny koniec listy. |
43 | list :: resize Zmienia rozmiar listy. |
44 | list :: resize wartość wersja Zmienia rozmiar listy. |
45 | list :: reverse Odwraca kolejność elementów obecnych na liście. |
46 | lista :: rozmiar Zwraca liczbę elementów obecnych na liście. |
47 | lista :: sort Sortuje elementy listy. |
48 | list :: sort Funkcja porównywania Sortuje elementy listy. |
49 | list :: splice Przenosi wszystkie elementy z listy do * this. |
50 | list :: splice pojedynczy element Przenosi element wskazywany przez iterator i z listy x do * this . |
51 | list :: splice move wersja Przenosi wszystkie elementy z listy x do * this przy użyciu semantyki przenoszenia. |
52 | list :: wersja zakresu splotów Przenosi elementy z zakresu od pierwszego do ostatniego z x do * this . |
53 | list :: splice wersja przeniesienia pojedynczego elementu Przenosi element wskazywany przez iterator i z listy x do * this przy użyciu semantyki przenoszenia. |
54 | list :: zakres łączenia i wersja przenoszenia Przenosi elementy z zakresu od pierwszego do ostatniego z x do * this przy użyciu semantyki przenoszenia. |
55 | list :: swap Zamienia zawartość listy na zawartość innej listy x . |
56 | lista :: unikalny Usuwa wszystkie kolejne zduplikowane elementy z listy. |
57 | lista :: unikalny Usuwa wszystkie kolejne zduplikowane elementy z listy. |
Przeciążone funkcje niebędące członkami
Sr.No. | Metoda i opis |
---|---|
1 | operator == Sprawdza, czy dwie listy są równe, czy nie. |
2 | operator! = Sprawdza, czy dwie listy są równe, czy nie. |
3 | operator < Sprawdza, czy pierwsza lista jest mniejsza od innej, czy nie. |
4 | operator <= Sprawdza, czy pierwsza lista jest mniejsza lub równa innej, czy też nie. |
5 | operator> Sprawdza, czy pierwsza lista jest większa niż inna, czy nie. |
6 | operator> = Sprawdza, czy pierwsza lista jest większa lub równa innej, czy też nie. |
7 | zamiana Zamienia zawartość dwóch list. |