Biblioteka C ++ - <unordered_map>

Wprowadzenie do unordered_map

Mapa nieuporządkowana jest strukturą danych podobną do słownika. Jest to sekwencja pary (klucz, wartość), w której tylko pojedyncza wartość jest skojarzona z każdym unikalnym kluczem. Jest często określany jako tablica asocjacyjna . Umożliwia szybkie pobieranie poszczególnych elementów na podstawie ich kluczy. Implementuje również operator bezpośredniego dostępu (operator indeksu dolnego []), który umożliwia bezpośredni dostęp do odwzorowanej wartości przy użyciu jej wartości klucza jako argumentu.

Mapa nieuporządkowana nie sortuje swojego elementu w żadnej określonej kolejności w odniesieniu do ich klucza lub zmapowanych wartości, zamiast tego organizuje się w zasobniki w zależności od ich wartości skrótu, aby umożliwić szybki dostęp do poszczególnych elementów bezpośrednio przez ich wartości kluczowe.

Mapa nieuporządkowana działa lepiej niż mapa podczas uzyskiwania dostępu do poszczególnych elementów za pomocą klawiszy. Jednak w przypadku iteracji zakresu ich wydajność jest znacznie niska.

Definicja

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

template < class Key,
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_map;

Parametry

  • Key - Typ klucza.

  • T - Typ mapowanych wartości.

  • Hash- Jednoargumentowy typ obiektu funkcji, który przyjmuje obiekt typu key jako argument i na jego podstawie zwraca unikalną wartość typu size_t .

  • Pred- Binarny predykat, który ma dwa argumenty typu klucza i zwraca wartość bool.

  • Alloc - Typ obiektu alokatora.

  • T można zastąpić dowolnym innym typem danych, w tym typem zdefiniowanym przez użytkownika.

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 klucza Klucz (pierwszy parametr szablonu)
2 mapped_type T (drugi parametr szablonu)
3 typ wartości para <const key_type, mapped_type>
4 hasher Trzeci parametr szablonu (domyślnie: hash <key_type>)
5 key_equal Czwarty parametr szablonu (domyślnie: equal_to <key_type>)
6 Alokator_typ Alloc (piąty parametr szablonu)
7 odniesienie typ wartości&
8 const_reference const value_type &
9 wskaźnik alokator_traits <Alloc> :: pointer
10 const_pointer alokator_traits <Alloc> :: const_pointer
11 iterator Iterator do przodu do value_type value_type
12 const_iterator Iterator do przodu do const value_type value_type
13 local_iterator Iterator do przodu do value_type
14 const_local_iterator Iterator do przodu do const value_type
15 typ_różnicy ptrdiff_t
16 typ_rozmiaru size_t

Funkcje z <unordered_map>

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

Konstruktorzy

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

Konstruuje pustą unordered_map z zerowymi elementami.

2 unordered_map :: unordered_map konstruktor kopiujący

Konstruuje unordered_map z kopią każdego elementu obecnego w istniejącej unordered_map.

3 unordered_map :: unordered_map konstruktor przenoszenia

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

4 unordered_map :: unordered_map konstruktor zakresu

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

5 unordered_map :: unordered_map initializer_list constructor

Konstruuje unordered_map z listy inicjalizacji.

Burzyciel

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

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

Funkcje składowe

Sr.No. Metoda i opis
1 unordered_map :: at

Zwraca odniesienie do zamapowanej wartości skojarzonej z kluczem k .

2 unordered_map :: begin iterator kontenera

Zwraca iterator, który odwołuje się do pierwszego elementu mapy.

3 unordered_map :: begin iterator zasobnika

Zwraca iterator wskazujący na pierwszy element w jednym z jego zasobników.

4 unordered_map :: bucket

Zwraca numer zasobnika, w którym znajduje się element z kluczem k .

5 unordered_map :: bucket_count

Zwraca liczbę zasobników w kontenerze unordered_map.

6 unordered_map :: bucket_size

Zwraca liczbę elementów prezentowanych w n- tym segmencie.

7 unordered_map :: cbegin Iterator kontenera

Zwraca stałą iterator, która odwołuje się do pierwszego elementu unordered_map.

8 unordered_map :: cbegin iterator zasobnika

Zwraca stały iterator wskazujący na pierwszy element w jednym z jego zasobników.

9 unordered_map :: Iterator kontenera cend

Zwraca stały iterator, który wskazuje na koniec elementu unordered_map.

10 unordered_map :: cend iterator zasobnika

Zwraca stały iterator, który wskazuje na koniec elementu w jednym z jego zasobników.

11 unordered_map :: clear

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

12 unordered_map :: count

Zwraca liczbę mapowanych wartości skojarzonych z kluczem k .

13 unordered_map :: emplace

Rozszerza kontener, wstawiając nowy element.

14 unordered_map :: emplace_hint

Wstawia nowy element w unordered_map, używając wskazówki jako pozycji dla elementu.

15 unordered_map :: empty

Sprawdza, czy unordered_map jest pusta, czy nie.

16 unordered_map :: end iterator kontenera

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

17 unordered_map :: end iterator zasobnika

Zwraca iterator wskazujący na koniec elementu w jednym z jego zasobników.

18 unordered_map :: equal

Zwraca zakres elementów pasujących do określonego klucza.

19 unordered_map :: erase pozycja wersja

Usuwa pojedynczy element unordered_map z pozycji .

20 unordered_map :: erase wersja klucza

Usuwa zmapowaną wartość skojarzoną z kluczem k .

21 unordered_map :: erase range version

Usuwa zakres elementu z unordered_map.

22 unordered_map :: find

Znajduje element powiązany z kluczem k .

23 unordered_map :: get_allocator

Zwraca alokator skojarzony z unordered_map.

24 unordered_map :: hash_function

Oblicza obiekt funkcji skrótu używany przez kontener unordered_map.

25 unordered_map :: insert

Rozszerza kontener, wstawiając nowy element w unordered_map.

26 unordered_map :: wstaw wersję przeniesienia

Rozszerza kontener, wstawiając nowy element w unordered_map.

27 unordered_map :: wstaw wersję podpowiedzi

Rozszerza kontekst, wstawiając nowy element w unordered_map.

28 unordered_map :: wstaw wersję ruchu i podpowiedzi

Rozszerza unordered_map, wstawiając nowy element.

29 unordered_map :: wstaw wersję zakresu

Rozszerza kontener, wstawiając nowe elementy w unordered_map.

30 unordered_map :: insert initializer_list version

Rozszerza mapę, wstawiając nowy element z listy inicjalizacyjnej.

31 unordered_map :: key_eq

Zwraca funkcję, która porównuje klucze pod kątem równości.

32 unordered_map :: load_factor

Zwraca bieżący współczynnik obciążenia kontenera unordered_map.

33 unordered_map :: max_bucket_count

Zwraca maksymalną liczbę zasobników, jaką może mieć kontener unordered_map.

34 unordered_map :: max_load_factor pobierz wersję

Zwraca bieżący maksymalny współczynnik obciążenia dla kontenera unordered_map.

35 unordered_map :: max_load_factor zestaw wersji

Przypisuje nowy współczynnik obciążenia dla kontenera unordered_map.

36 unordered_map :: max_size

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

37 unordered_map :: operator = kopiuj wersję

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

38 unordered_map :: operator = przenieś wersję

Przenieś zawartość jednej unordered_map do innej i zmodyfikuj rozmiar, jeśli to konieczne.

39 unordered_map :: operator = initializer_list wersja

Skopiuj elementy z listy inicjalizacyjnej do unordered_map.

40 unordered_map :: operator []

Jeśli klucz k pasuje do elementu w kontenerze, to metoda zwraca odwołanie do elementu.

41 unordered_map :: operator [] przenieś wersję

Jeśli klucz k pasuje do elementu w kontenerze, to metoda zwraca odwołanie do elementu.

42 unordered_map :: rehash

Ustawia liczbę zasobników w kontenerze na n lub więcej.

43 unordered_map :: Reserve

Ustawia liczbę wiader w kontenerze na najbardziej odpowiednią, aby zawierała co najmniej n elementów.

44 unordered_map :: size

Zwraca liczbę elementów obecnych w unordered_map.

45 unordered_map :: swap

Wymienia zawartość pierwszej unordered_map z inną.

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

Sr.No. Metoda i opis
1 unordered_map :: operator ==

Sprawdza, czy dwie unordered_maps są równe, czy nie.

2 unordered_map :: operator! =

Sprawdza, czy dwie unordered_maps są równe, czy nie.

3 unordered_map :: swap

Wymienia zawartość pierwszej unordered_map z inną.

Wprowadzenie do unordered_multimap

Unordered_multimap jest słownikową strukturą danych. Jest to sekwencja pary (klucz, wartość), w której różne elementy mogą mieć równoważne klucze. Elementy z równoważnymi kluczami są zgrupowane razem w tym samym zasobniku i w taki sposób, że iterator equal_range może iterować je wszystkie.

Unordered_multimap nie sortuje swojego elementu w żadnej określonej kolejności w odniesieniu do ich klucza lub zmapowanych wartości, zamiast tego organizuje się w zasobniki w zależności od ich wartości skrótu, aby umożliwić szybki dostęp do poszczególnych elementów bezpośrednio przez ich wartości kluczowe.

Definicja

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

template < class Key, 
           class T,
           class Hash = hash<Key>,
           class Pred = equal_to<Key>,
           class Alloc = allocator< pair<const Key,T> >
           > class unordered_multimap;

Parametry

  • Key - Typ klucza.

  • T - Typ mapowanych wartości.

  • Hash- Jednoargumentowy typ obiektu funkcji, który przyjmuje obiekt typu key jako argument i na jego podstawie zwraca unikalną wartość typu size_t .

  • Pred- Binarny predykat, który ma dwa argumenty typu klucza i zwraca wartość bool.

  • Alloc - Typ obiektu alokatora.

    T można zastąpić dowolnym innym typem danych, w tym typem zdefiniowanym przez użytkownika.

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 klucza Klucz (pierwszy parametr szablonu)
2 mapped_type T (drugi parametr szablonu)
3 typ wartości para <const key_type, mapped_type>
4 hasher Trzeci parametr szablonu (domyślnie: hash <key_type>)
5 key_equal Czwarty parametr szablonu (domyślnie: equal_to <key_type>)
6 Alokator_typ Alloc (piąty parametr szablonu)
7 odniesienie typ wartości&
8 const_reference const value_type &
9 wskaźnik alokator_traits <Alloc> :: pointer
10 const_pointer alokator_traits <Alloc> :: const_pointer
11 iterator Iterator do przodu do value_type value_type
12 const_iterator Iterator do przodu do const value_type value_type
13 local_iterator Iterator do przodu do value_type
14 const_local_iterator Iterator do przodu do const value_type
15 typ_różnicy ptrdiff_t
16 typ_rozmiaru size_t

Funkcje z <unordered_multimap>

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

Konstruktorzy

Sr.No. Metoda i opis
1 unordered_multimap :: unordered_multimap () domyślny konstruktor

Konstruuje pustą unordered_multimap z zerowymi elementami.

2 konstruktor kopiujący unordered_multimap :: unordered_multimap ()

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

3 unordered_multimap :: unordered_multimap () konstruktor przenoszenia

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

4 konstruktor zakresu unordered_multimap :: unordered_multimap ()

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

5 konstruktor unordered_multimap :: unordered_multimap () initializer_list

Konstruuje unordered_multimap z listy inicjalizacji.

Burzyciel

Sr.No. Metoda i opis
1 unordered_multimap :: ~ unordered_multimap ()

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

Funkcje składowe

Sr.No. Metoda i opis
1 unordered_multimap :: begin () iterator kontenera

Zwraca iterator, który odwołuje się do pierwszego elementu unordered_mulitmap.

2 unordered_multimap :: begin () iterator zasobnika

Zwraca iterator wskazujący na pierwszy element w jednym z jego zasobników.

3 unordered_multimap :: bucket ()

Zwraca numer zasobnika, w którym znajduje się element z kluczem k .

4 unordered_multimap :: bucket_count ()

Zwraca liczbę zasobników obecnych w kontenerze unordered_multimap.

5 unordered_multimap :: bucket_size ()

Zwraca liczbę elementów prezentowanych w n- tym segmencie.

6 unordered_multimap :: cbegin () iterator kontenera

Zwraca stały iterator, który odwołuje się do pierwszego elementu unordered_multimap.

7 unordered_multimap :: cbegin () iterator zasobnika

Zwraca stały iterator wskazujący na pierwszy element w jednym z jego zasobników.

8 unordered_multimap :: cend () iterator kontenera

Zwraca stałą iterator, która wskazuje na koniec elementu unordered_multimap.

9 unordered_multimap :: cend () iterator zasobnika

Zwraca stały iterator, który wskazuje na koniec elementu w jednym z jego zasobników.

10 unordered_multimap :: clear ()

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

11 unordered_multimap :: count ()

Zwraca liczbę mapowanych wartości skojarzonych z kluczem k .

12 unordered_multimap :: emplace ()

Rozszerza kontener, wstawiając nowy element.

13 unordered_multimap :: emplace_hint ()

Wstawia nowy element w unordered_multimap, używając wskazówki jako pozycji dla elementu.

14 unordered_multimap :: empty ()

Sprawdza, czy unordered_multimap jest pusty, czy nie.

15 unordered_multimap :: end () iterator kontenera

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

16 unordered_multimap :: end () iterator zasobnika

Zwraca iterator wskazujący na koniec elementu w jednym z jego zasobników.

17 unordered_multimap :: equal_range ()

Zwraca zakres elementów pasujących do określonego klucza.

18 unordered_multimap :: erase () wersja pozycji

Usuwa pojedynczy element unordered_multimap z pozycji .

19 unordered_multimap :: erase () wersja klucza

Usuwa zmapowaną wartość skojarzoną z kluczem k .

20 unordered_multimap :: erase () wersja zakresu

Usuwa zakres elementu z unordered_multimap.

21 unordered_multimap :: find ()

Znajduje element powiązany z kluczem k .

22 unordered_multimap :: get_allocator ()

Zwraca alokator skojarzony z unordered_multimap.

23 unordered_multimap :: hash_function ()

Oblicza obiekt funkcji skrótu używany przez kontener unordered_multimap.

24 unordered_multimap :: insert () value wersja

Rozszerza kontener, wstawiając nowy element w unordered_multimap.

25 unordered_multimap :: insert () przenieś wersję

Rozszerza unordered_multimap, wstawiając nowy element.

26 unordered_multimap :: insert () wersja podpowiedzi

Rozszerza kontener, wstawiając nowy element w unordered_multimap.

27 unordered_multimap :: insert () wskazówka przenieś wersję

Rozszerza kontener, wstawiając nowy element w unordered_multimap przy użyciu semantyki przenoszenia.

28 unordered_multimap :: insert () wersja zakresu

Rozszerza kontener, wstawiając nowe elementy w pliku unordered_multimap.

29 unordered_multimap :: insert () initializer_list wersja

Rozszerza unordered_multimap, wstawiając nowy element z listy inicjatorów.

30 unordered_multimap :: key_eq ()

Zwraca funkcję, która porównuje klucze pod kątem równości.

31 unordered_multimap :: load_factor ()

Zwraca bieżący współczynnik obciążenia kontenera unordered_multimap.

32 unordered_multimap :: max_bucket_count ()

Zwraca maksymalną liczbę zasobników, jaką może mieć kontener unordered_multimap.

33 unordered_multimap :: max_load_factor () pobierz wersję

Zwraca bieżący maksymalny współczynnik obciążenia dla kontenera unordered_multimap.

34 unordered_multimap :: max_load_factor () ustaw wersję

Przypisuje nowy współczynnik obciążenia dla kontenera unordered_multimap.

35 unordered_multimap :: max_size ()

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

36 unordered_multimap :: operator = () kopiuj wersję

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

37 unordered_multimap :: operator = () przenieś wersję

Przenieś zawartość jednej unordered_multimap do innej i zmodyfikuj rozmiar, jeśli to konieczne.

38 unordered_multimap :: operator = () initializer_list wersja

Skopiuj elementy z listy inicjalizacyjnej do unordered_multimap.

39 unordered_multimap :: rehash ()

Ustawia liczbę zasobników w kontenerze na n lub więcej.

40 unordered_multimap :: Reserve ()

Ustawia liczbę wiader w kontenerze na najbardziej odpowiednią, aby zawierała co najmniej n elementów.

41 unordered_multimap :: size ()

Zwraca liczbę elementów obecnych w unordered_multimap.

42 unordered_multimap :: swap ()

Wymienia zawartość pierwszej unordered_multimap z inną.

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

Sr.No. Metoda i opis
1 unordered_multimap :: operator == ()

Sprawdza, czy dwie unordered_multimapy są równe, czy nie.

2 unordered_multimap :: operator! = ()

Sprawdza, czy dwie unordered_multimapy są równe, czy nie.

3 unordered_multimap :: swap ()

Wymienia zawartość pierwszej unordered_multimap z inną.