Biblioteka C ++ - <deque>

Wprowadzenie

Deque to akronim od Dpodwójny Ended Queue. Jest to kontener sekwencji, który może zmieniać rozmiar w czasie wykonywania. Kontener to obiekt przechowujący dane tego samego typu. Kontenery sekwencji przechowują elementy ściśle w kolejności liniowej.

Elementy deque mogą być rozproszone w różnych fragmentach pamięci. Kontener przechowuje niezbędne informacje, aby umożliwić bezpośredni dostęp do dowolnego elementu w stałym czasie. W przeciwieństwie do wektorów, deque nie ma gwarancji przechowywania całego swojego elementu w ciągłych lokalizacjach pamięci. Dlatego nie pozwala na bezpośredni dostęp do danych przez przesunięcie wskaźników. Ale umożliwia bezpośredni dostęp do dowolnego elementu za pomocą operatora indeksu [].

Deque może się kurczyć lub rozszerzać w razie potrzeby z obu końców w czasie wykonywania. Zapotrzebowanie na miejsce jest automatycznie wypełniane przez wewnętrzny podzielnik . Deque zapewnia podobną funkcjonalność jak wektory, ale zapewnia skuteczny sposób wstawiania i usuwania danych z dowolnego końca.

Ważne są również deques o zerowej wielkości. W takim przypadku deque.begin () i deque.end () wskazują na tę samą lokalizację. Ale zachowanie wywołania front () lub back () jest niezdefiniowane.

Definicja

Poniżej znajduje się definicja std :: deque z pliku nagłówkowego <deque>

template < class T, class Alloc = allocator<T> > class deque;

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 <deque>

Poniżej znajduje się lista wszystkich metod z nagłówka <deque>.

Konstruktorzy

Sr.No. Metoda i opis
1 deque :: deque domyślny konstruktor

Konstruuje pusty deque z zerowym elementem.

2 deque :: deque fill konstruktor

skonstruuj nowy deque z n elementów i przypisz val do każdego elementu deque

3 deque :: deque konstruktor zakresu

Konstruuje deque z tyloma elementami w zakresie od pierwszego do ostatniego .

4 deque :: deque konstruktor kopiujący

Konstruuje deque z kopią każdego elementu obecnego w istniejącym kontenerze.

5 deque :: deque move constructor

Konstruuje deque z zawartością innych przy użyciu semantyki przenoszenia.

6 deque :: deque konstruktor listy inicjalizującej

Konstruuje deque z listy inicjalizacji.

Burzyciel

Sr.No. Metoda i opis
1 deque :: ~ deque

Niszczy obiekt deque, zwalniając jego pamięć.

Funkcje składowe

Sr.No. Metoda i opis
1 deque :: przypisać wersję zakresu

Przypisz nowe wartości do elementów deque, zastępując stare.

2 deque :: przypisz wersję wypełnienia

Przypisz nowe wartości do elementów deque, zastępując stare.

3 deque :: przypisanie wersji listy inicjalizacyjnej

Przypisz nowe wartości do elementów deque, zastępując stare.

4 deque :: at

Zwraca odniesienie do elementu obecnego w lokalizacji n w deque.

5 deque :: powrót

Zwraca odwołanie do ostatniego elementu deque.

6 deque :: begin

Zwraca iterator dostępu swobodnego wskazujący na pierwszy element deque.

7 deque :: cbegin

Zwraca stały iterator o dostępie swobodnym, który wskazuje początek deque.

8 deque :: cend

Zwraca stały iterator o dostępie swobodnym, który wskazuje początek deque.

9 deque :: clear

Niszczy deque, usuwając wszystkie elementy z deque i ustawia rozmiar deque na zero.

10 deque :: crbegin

Zwraca stały iterator odwrotny, który wskazuje na początek cofania kontenera.

11 deque :: crend

Zwraca stały iterator odwrotny, który wskazuje na odwrotny koniec deque.

12 deque :: embrace

Rozszerza kontener, wstawiając nowy element na miejscu .

13 deque :: embrace_back

Wstawia nowy element na koniec deque.

14 deque :: embrace_front

Wstawia nowy element na początku deque.

15 deque :: empty

Sprawdza, czy deque jest pusty, czy nie.

16 deque :: end

Zwraca iterator, który wskazuje na element poza końcem w kontenerze deque.

17 deque :: erase pozycja wersja

Usuwa pojedynczy element z deque.

18 deque :: erase range wersja

Usuwa pojedynczy element z deque.

19 deque :: front

Zwraca odwołanie do pierwszego elementu deque

20 deque :: get_allocator

Zwraca alokator powiązany z deque

21 deque :: insert wersja jednoelementowa

Rozszerza kontener, wstawiając nowy element na miejscu.

22 deque :: insert fill version

Rozszerza kontener, wstawiając nowy element do kontenera.

23 deque :: insert range wersja

Rozszerza kontener, wstawiając nowy element do kontenera.

24 deque :: insert move wersja

Rozszerza kontener, wstawiając nowy element do kontenera.

25 deque :: insert wersja listy inicjalizacyjnej

Rozszerza kontener, wstawiając nowy element do kontenera.

26 deque :: max_size

Zwraca maksymalną liczbę elementów, które może przechowywać deque.

27 deque :: operator = kopiuj wersję

Przypisz nową zawartość do deque, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

28 deque :: operator = przenieś wersję

Przypisz nową zawartość do deque, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

29 deque :: operator = wersja listy inicjalizacyjnej

Przypisz nową zawartość do deque, zastępując stare i modyfikując rozmiar, jeśli to konieczne.

30 deque :: operator []

Zwraca odwołanie do elementu obecnego w lokalizacji n .

31 deque :: pop_back

Usuwa ostatni element z deque i zmniejsza rozmiar deque o jeden.

32 deque :: pop_front

Usuwa pierwszy element z deque i zmniejsza rozmiar deque o jeden.

33 deque :: push_back

Wstawia nowy element na koniec deque i zwiększa rozmiar deque o jeden.

34 deque :: push_back move version

Wstawia nowy element na koniec deque i zwiększa rozmiar deque o jeden.

35 deque :: push_front

Wstawia nowy element z przodu deque i zwiększa rozmiar deque o jeden.

36 deque :: push_front move version

Wstawia nowy element z przodu deque i zwiększa rozmiar deque o jeden.

37 deque :: rbegin

Zwraca iterator odwrotny, który wskazuje na ostatni element deque.

38 deque :: rend

Zwraca odwrotny iterator, który wskazuje na odwrotny koniec deque.

39 deque :: resize

Zmienia rozmiar deque.

40 deque :: resize wartość wersja

Zmienia rozmiar deque.

41 deque :: shrink_to_fit

Żąda, aby pojemnik zmniejszył swoją pojemność, aby pasował do jego rozmiaru.

42 deque :: size

Zwraca liczbę elementów obecnych w deque.

43 deque :: swap

Wymienia zawartość deque z zawartością innego deque x .

Przeciążone funkcje niebędące członkami

Sr.No. Metoda i opis
1 operator ==

Sprawdza, czy dwa deques są równe, czy nie.

2 operator! =

Sprawdza, czy dwa deques są równe, czy nie.

3 operator <

Sprawdza, czy pierwszy deque jest mniejszy niż inny, czy nie.

4 operator <=

Sprawdza, czy pierwszy deque jest mniejszy lub równy innemu, czy nie.

5 operator>

Sprawdza, czy pierwszy deque jest większy niż inny, czy nie.

6 operator> =

Sprawdza, czy pierwszy deque jest większy lub równy innym, czy nie.

7 zamiana

Wymienia zawartość dwóch deque.