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ą. |