C ++ - Bibliothek - <ungeordnete_Karte>
Einführung in unordered_map
Die ungeordnete Karte ist eine wörterbuchähnliche Datenstruktur. Es handelt sich um eine Folge von (Schlüssel-, Wert-) Paaren, bei denen jedem eindeutigen Schlüssel nur ein einziger Wert zugeordnet ist. Es wird oft als assoziatives Array bezeichnet . Es ermöglicht das schnelle Abrufen einzelner Elemente anhand ihrer Schlüssel. Es implementiert auch den Direktzugriffsoperator (Indexoperator []), der den direkten Zugriff auf den zugeordneten Wert unter Verwendung seines Schlüsselwerts als Argument ermöglicht.
Ungeordnete Karten sortieren ihr Element weder in Bezug auf ihre Schlüssel- noch in Bezug auf die zugeordneten Werte in einer bestimmten Reihenfolge, sondern organisieren es in Abhängigkeit von ihren Hashwerten in Buckets, um einen schnellen Zugriff auf einzelne Elemente direkt anhand ihrer Schlüsselwerte zu ermöglichen.
Ungeordnete Karten sind besser als Karten, wenn sie über ihre Schlüssel auf einzelne Elemente zugreifen. Für die Bereichsiteration ist ihre Leistung jedoch erheblich gering.
Definition
Unten finden Sie die Definition von std :: unordered_map aus der Header-Datei <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;
Parameter
Key - Typ des Schlüssels.
T - Typ der zugeordneten Werte.
Hash- Ein Objekttyp mit unärer Funktion, der ein Objekt vom Typ Schlüsseltyp als Argument verwendet und darauf basierend einen eindeutigen Wert vom Typ size_t zurückgibt .
Pred- Ein binäres Prädikat, das zwei Argumente des Schlüsseltyps enthält und einen Bool zurückgibt.
Alloc - Typ des Allokatorobjekts.
T kann durch einen anderen Datentyp einschließlich eines benutzerdefinierten Typs ersetzt werden.
Mitgliedertypen
Die folgenden Elementtypen können von Elementfunktionen als Parameter oder Rückgabetyp verwendet werden.
Sr.Nr. | Mitgliedertypen | Definition |
---|---|---|
1 | Schlüsselart | Schlüssel (Erster Parameter der Vorlage) |
2 | mapped_type | T (Zweiter Parameter der Vorlage) |
3 | Werttyp | Paar <const key_type, mapped_type> |
4 | hasher | Der dritte Vorlagenparameter (standardmäßig: Hash <Schlüsseltyp>) |
5 | key_equal | Der vierte Vorlagenparameter (standardmäßig: gleich_zu <Schlüsseltyp>) |
6 | allocator_type | Alloc (Fünfter Parameter der Vorlage) |
7 | Referenz | Werttyp& |
8 | const_reference | const value_type & |
9 | Zeiger | allocator_traits <Alloc> :: Zeiger |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | Iterator | Ein Forward-Iterator zu value_type value_type |
12 | const_iterator | Ein Vorwärtsiterator für const value_type value_type |
13 | local_iterator | Ein Forward-Iterator für value_type |
14 | const_local_iterator | Ein Vorwärtsiterator für const value_type |
15 | Differenztyp | ptrdiff_t |
16 | size_type | size_t |
Funktionen von <unordered_map>
Unten finden Sie eine Liste aller Methoden aus dem Header <unordered_map>.
Konstruktoren
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_map :: unordered_map Standardkonstruktor Erstellt eine leere ungeordnete Karte mit null Elementen. |
2 | unordered_map :: unordered_map Kopierkonstruktor Erstellt eine ungeordnete_Map mit einer Kopie aller Elemente, die in der vorhandenen ungeordneten_Karte vorhanden sind. |
3 | unordered_map :: unordered_map Verschiebungskonstruktor Erstellt eine ungeordnete_Map mit dem Inhalt anderer mithilfe der Verschiebungssemantik. |
4 | unordered_map :: unordered_map Bereichskonstruktor Erstellt eine ungeordnete_Map mit so vielen Elementen wie im Bereich von zuerst bis zuletzt . |
5 | Konstruktor unordered_map :: unordered_map initializer_list Erstellt eine ungeordnete Karte aus der Initialisierungsliste. |
Zerstörer
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_map :: ~ unordered_map Zerstört das unordered_map-Objekt durch Freigabe seines Speichers. |
Mitgliedsfunktionen
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_map :: at Gibt einen Verweis auf den zugeordneten Wert zurück, der dem Schlüssel k zugeordnet ist . |
2 | unordered_map :: begin container iterator Gibt einen Iterator zurück, der auf das erste Element der Karte verweist. |
3 | unordered_map :: begin Bucket Iterator Gibt einen Iterator zurück, der auf das erste Element in einem seiner Buckets zeigt. |
4 | unordered_map :: Bucket Gibt die Bucket-Nummer zurück, in der sich das Element mit dem Schlüssel k befindet. |
5 | unordered_map :: Bucket_count Gibt die Anzahl der Buckets im unordered_map-Container zurück. |
6 | unordered_map :: Bucket_size Gibt die Anzahl der im n- ten Bucket vorhandenen Elemente zurück . |
7 | unordered_map :: cbegin container iterator Gibt einen konstanten Iterator zurück, der auf das erste Element der unordered_map verweist. |
8 | unordered_map :: cbegin Bucket Iterator Gibt einen konstanten Iterator zurück, der auf das erste Element in einem seiner Buckets zeigt. |
9 | unordered_map :: cend container iterator Gibt einen konstanten Iterator zurück, der auf das Element am Ende der ungeordneten Karte zeigt. |
10 | unordered_map :: cend Bucket Iterator Gibt einen konstanten Iterator zurück, der in einem seiner Buckets auf das Element am Ende zeigt . |
11 | unordered_map :: clear Zerstört die unordered_map durch Entfernen aller Elemente und setzt die Größe von unordered_map auf Null . |
12 | unordered_map :: count Gibt die Anzahl der zugeordneten Werte zurück, die dem Schlüssel k zugeordnet sind . |
13 | unordered_map :: emplace Erweitert den Container durch Einfügen eines neuen Elements. |
14 | unordered_map :: emplace_hint Fügt ein neues Element in unordered_map ein, wobei der Hinweis als Position für das Element verwendet wird. |
15 | unordered_map :: leer Testet, ob unordered_map leer ist oder nicht. |
16 | unordered_map :: end container iterator Gibt einen Iterator zurück, der auf das Element am Ende der ungeordneten Karte verweist . |
17 | unordered_map :: end Bucket Iterator Gibt einen Iterator zurück, der in einem seiner Buckets auf das Element am Ende zeigt . |
18 | unordered_map :: gleich Gibt einen Bereich von Elementen zurück, die einem bestimmten Schlüssel entsprechen. |
19 | unordered_map :: Positionsversion löschen Entfernt ein einzelnes Element der ungeordneten_Karte von der Position . |
20 | unordered_map :: Schlüsselversion löschen Entfernt den zugeordneten Wert, der dem Schlüssel k zugeordnet ist . |
21 | unordered_map :: erase range version Entfernt den Elementbereich aus der ungeordneten_Karte. |
22 | unordered_map :: find Findet ein Element, das dem Schlüssel k zugeordnet ist . |
23 | unordered_map :: get_allocator Gibt einen Allokator zurück, der mit unordered_map verknüpft ist. |
24 | unordered_map :: hash_function Berechnet das vom unordered_map-Container verwendete Hash-Funktionsobjekt. |
25 | unordered_map :: insert Erweitert den Container durch Einfügen eines neuen Elements in unordered_map. |
26 | unordered_map :: insert move version Erweitert den Container durch Einfügen eines neuen Elements in unordered_map. |
27 | unordered_map :: insert Hinweis Version Erweitert den Container durch Einfügen eines neuen Elements in unordered_map. |
28 | unordered_map :: verschiebe und füge Version ein Erweitert unordered_map durch Einfügen eines neuen Elements. |
29 | unordered_map :: Range-Version einfügen Erweitert den Container durch Einfügen neuer Elemente in die unordered_map. |
30 | unordered_map :: füge initializer_list version ein Erweitert die Karte durch Einfügen eines neuen Elements aus der Initialisierungsliste. |
31 | unordered_map :: key_eq Gibt die Funktion zurück, die Schlüssel auf Gleichheit vergleicht. |
32 | unordered_map :: load_factor Gibt den aktuellen Ladefaktor des Containers unordered_map zurück. |
33 | unordered_map :: max_bucket_count Gibt die maximale Anzahl von Buckets zurück, die der unordered_map-Container haben kann. |
34 | unordered_map :: max_load_factor Version abrufen Gibt den aktuellen maximalen Ladefaktor für den Container unordered_map zurück. |
35 | unordered_map :: max_load_factor set version Weist dem Container unordered_map einen neuen Ladefaktor zu. |
36 | unordered_map :: max_size Gibt die maximale Anzahl von Elementen zurück, die von unordered_map gehalten werden können. |
37 | unordered_map :: operator = Version kopieren Weist der unordered_map neue Inhalte zu, indem alte ersetzt werden, und ändert gegebenenfalls die Größe. |
38 | unordered_map :: operator = Version verschieben Verschieben Sie den Inhalt einer ungeordneten Karte in eine andere und ändern Sie gegebenenfalls die Größe. |
39 | unordered_map :: operator = initializer_list version Kopieren Sie Elemente aus der Initialisierungsliste in unordered_map. |
40 | unordered_map :: operator [] Wenn der Schlüssel k mit einem Element im Container übereinstimmt, gibt die Methode einen Verweis auf das Element zurück. |
41 | unordered_map :: operator [] Version verschieben Wenn der Schlüssel k mit einem Element im Container übereinstimmt, gibt die Methode einen Verweis auf das Element zurück. |
42 | unordered_map :: rehash Legt die Anzahl der Buckets im Container auf n oder mehr fest. |
43 | unordered_map :: Reserve Legt die Anzahl der Buckets im Container so fest, dass sie mindestens n Elemente enthalten. |
44 | unordered_map :: size Gibt die Anzahl der Elemente zurück, die in der unordered_map vorhanden sind. |
45 | unordered_map :: swap Tauscht den Inhalt der ersten ungeordneten Karte mit einer anderen aus. |
Überladene Funktionen ohne Mitglieder
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_map :: operator == Testet, ob zwei ungeordnete_Karten gleich sind oder nicht. |
2 | unordered_map :: operator! = Testet, ob zwei ungeordnete_Karten gleich sind oder nicht. |
3 | unordered_map :: swap Tauscht den Inhalt der ersten ungeordneten Karte mit einer anderen aus. |
Einführung in unordered_multimap
Unordered_multimap ist eine wörterbuchähnliche Datenstruktur. Es ist eine Folge von (Schlüssel-, Wert-) Paaren, bei denen verschiedene Elemente äquivalente Schlüssel haben können. Elemente mit äquivalenten Schlüsseln werden im selben Bucket zusammengefasst und so, dass ein Iterator mit gleichem Bereich alle durchlaufen kann.
Unordered_multimap sortiert sein Element weder in Bezug auf seine Schlüssel- noch in Bezug auf die zugeordneten Werte in einer bestimmten Reihenfolge, sondern organisiert es in Abhängigkeit von ihren Hash-Werten in Buckets, um einen schnellen Zugriff auf einzelne Elemente direkt anhand ihrer Schlüsselwerte zu ermöglichen.
Definition
Unten finden Sie die Definition von std :: unordered_multimap aus der Header-Datei <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;
Parameter
Key - Typ des Schlüssels.
T - Typ der zugeordneten Werte.
Hash- Ein Objekttyp mit unärer Funktion, der ein Objekt vom Typ Schlüsseltyp als Argument verwendet und darauf basierend einen eindeutigen Wert vom Typ size_t zurückgibt .
Pred- Ein binäres Prädikat, das zwei Argumente des Schlüsseltyps enthält und einen Bool zurückgibt.
Alloc - Typ des Allokatorobjekts.
T kann durch einen anderen Datentyp einschließlich eines benutzerdefinierten Typs ersetzt werden.
Mitgliedertypen
Die folgenden Elementtypen können von Elementfunktionen als Parameter oder Rückgabetyp verwendet werden.
Sr.Nr. | Mitgliedertypen | Definition |
---|---|---|
1 | Schlüsselart | Schlüssel (Erster Parameter der Vorlage) |
2 | mapped_type | T (Zweiter Parameter der Vorlage) |
3 | Werttyp | Paar <const key_type, mapped_type> |
4 | hasher | Der dritte Vorlagenparameter (standardmäßig: Hash <Schlüsseltyp>) |
5 | key_equal | Der vierte Vorlagenparameter (standardmäßig: gleich_zu <Schlüsseltyp>) |
6 | allocator_type | Alloc (Fünfter Parameter der Vorlage) |
7 | Referenz | Werttyp& |
8 | const_reference | const value_type & |
9 | Zeiger | allocator_traits <Alloc> :: Zeiger |
10 | const_pointer | allocator_traits <Alloc> :: const_pointer |
11 | Iterator | Ein Forward-Iterator zu value_type value_type |
12 | const_iterator | Ein Vorwärtsiterator für const value_type value_type |
13 | local_iterator | Ein Forward-Iterator für value_type |
14 | const_local_iterator | Ein Vorwärtsiterator für const value_type |
15 | Differenztyp | ptrdiff_t |
16 | size_type | size_t |
Funktionen von <unordered_multimap>
Unten finden Sie eine Liste aller Methoden aus dem Header <unordered_map>.
Konstruktoren
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_multimap :: unordered_multimap () Standardkonstruktor Erstellt eine leere ungeordnete_multimap mit null Elementen. |
2 | unordered_multimap :: unordered_multimap () Kopierkonstruktor Erstellt eine ungeordnete_Multimap mit einer Kopie aller Elemente, die in der vorhandenen ungeordneten_Multimap vorhanden sind. |
3 | unordered_multimap :: unordered_multimap () Konstruktor verschieben Konstruiert eine ungeordnete_multimap mit dem Inhalt anderer mithilfe der Verschiebungssemantik. |
4 | unordered_multimap :: unordered_multimap () Bereichskonstruktor Erstellt eine ungeordnete_Multimap mit so vielen Elementen wie im Bereich von zuerst bis zuletzt . |
5 | unordered_multimap :: unordered_multimap () initializer_list Konstruktor Erstellt eine ungeordnete_Multimap aus der Initialisierungsliste. |
Zerstörer
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_multimap :: ~ unordered_multimap () Zerstört das unordered_multimap-Objekt durch Freigabe seines Speichers. |
Mitgliedsfunktionen
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_multimap :: begin () Container-Iterator Gibt einen Iterator zurück, der auf das erste Element der unordered_mulitmap verweist. |
2 | unordered_multimap :: begin () Bucket-Iterator Gibt einen Iterator zurück, der auf das erste Element in einem seiner Buckets zeigt. |
3 | unordered_multimap :: Bucket () Gibt die Bucket-Nummer zurück, in der sich das Element mit dem Schlüssel k befindet. |
4 | unordered_multimap :: Bucket_count () Gibt die Anzahl der im unordered_multimap-Container vorhandenen Buckets zurück. |
5 | unordered_multimap :: Bucket_size () Gibt die Anzahl der im n- ten Bucket vorhandenen Elemente zurück . |
6 | unordered_multimap :: cbegin () Container-Iterator Gibt einen konstanten Iterator zurück, der auf das erste Element der unordered_multimap verweist. |
7 | unordered_multimap :: cbegin () Bucket-Iterator Gibt einen konstanten Iterator zurück, der auf das erste Element in einem seiner Buckets zeigt. |
8 | unordered_multimap :: cend () Container-Iterator Gibt einen konstanten Iterator zurück, der auf das Past-the-End- Element der unordered_multimap verweist . |
9 | unordered_multimap :: cend () Bucket-Iterator Gibt einen konstanten Iterator zurück, der in einem seiner Buckets auf das Element am Ende zeigt . |
10 | unordered_multimap :: clear () Zerstört die unordered_multimap, indem alle Elemente entfernt werden, und setzt die Größe von unordered_multimap auf Null . |
11 | unordered_multimap :: count () Gibt die Anzahl der zugeordneten Werte zurück, die dem Schlüssel k zugeordnet sind . |
12 | unordered_multimap :: emplace () Erweitert den Container durch Einfügen eines neuen Elements. |
13 | unordered_multimap :: emplace_hint () Fügt ein neues Element in eine ungeordnete_Multimap ein, wobei der Hinweis als Position für das Element verwendet wird. |
14 | unordered_multimap :: empty () Testet, ob unordered_multimap leer ist oder nicht. |
15 | unordered_multimap :: end () Container-Iterator Gibt einen Iterator zurück, der in der unordered_multimap auf das Element past-the-end verweist . |
16 | unordered_multimap :: end () Bucket-Iterator Gibt einen Iterator zurück, der in einem seiner Buckets auf das Element am Ende zeigt . |
17 | unordered_multimap :: same_range () Gibt einen Bereich von Elementen zurück, die einem bestimmten Schlüssel entsprechen. |
18 | unordered_multimap :: erase () Positionsversion Entfernt ein einzelnes Element der ungeordneten_multimap von der Position . |
19 | unordered_multimap :: erase () Schlüsselversion Entfernt den zugeordneten Wert, der dem Schlüssel k zugeordnet ist . |
20 | unordered_multimap :: erase () Bereichsversion Entfernt den Elementbereich aus der unordered_multimap. |
21 | unordered_multimap :: find () Findet ein Element, das dem Schlüssel k zugeordnet ist . |
22 | unordered_multimap :: get_allocator () Gibt einen Allokator zurück, der unordered_multimap zugeordnet ist. |
23 | unordered_multimap :: hash_function () Berechnet das vom unordered_multimap-Container verwendete Hash-Funktionsobjekt. |
24 | unordered_multimap :: insert () Wertversion Erweitert den Container durch Einfügen eines neuen Elements in unordered_multimap. |
25 | unordered_multimap :: insert () Version verschieben Erweitert unordered_multimap durch Einfügen eines neuen Elements. |
26 | unordered_multimap :: insert () Hinweisversion Erweitert den Container durch Einfügen eines neuen Elements in unordered_multimap. |
27 | unordered_multimap :: insert () Hinweis verschieben Version Erweitert den Container durch Einfügen eines neuen Elements in unordered_multimap mithilfe der Verschiebungssemantik. |
28 | unordered_multimap :: insert () Bereichsversion Erweitert den Container durch Einfügen neuer Elemente in die unordered_multimap. |
29 | unordered_multimap :: insert () initializer_list version Erweitert unordered_multimap durch Einfügen eines neuen Elements aus der Initialisiererliste. |
30 | unordered_multimap :: key_eq () Gibt die Funktion zurück, die Schlüssel auf Gleichheit vergleicht. |
31 | unordered_multimap :: load_factor () Gibt den aktuellen Ladefaktor des Containers unordered_multimap zurück. |
32 | unordered_multimap :: max_bucket_count () Gibt die maximale Anzahl von Buckets zurück, die der unordered_multimap-Container haben kann. |
33 | unordered_multimap :: max_load_factor () Version abrufen Gibt den aktuellen maximalen Ladefaktor für den Container unordered_multimap zurück. |
34 | unordered_multimap :: max_load_factor () set version Weist dem Container unordered_multimap einen neuen Ladefaktor zu. |
35 | unordered_multimap :: max_size () Gibt die maximale Anzahl von Elementen zurück, die von unordered_multimap gehalten werden können. |
36 | unordered_multimap :: operator = () Version kopieren Weist der unordered_multimap neue Inhalte zu, indem alte ersetzt werden, und ändert gegebenenfalls die Größe. |
37 | unordered_multimap :: operator = () Version verschieben Verschieben Sie den Inhalt einer ungeordneten_multimap in eine andere und ändern Sie gegebenenfalls die Größe. |
38 | unordered_multimap :: operator = () initializer_list version Kopieren Sie Elemente aus der Initialisierungsliste nach unordered_multimap. |
39 | unordered_multimap :: rehash () Legt die Anzahl der Buckets im Container auf n oder mehr fest. |
40 | unordered_multimap :: Reserve () Legt die Anzahl der Buckets im Container so fest, dass sie mindestens n Elemente enthalten. |
41 | unordered_multimap :: size () Gibt die Anzahl der Elemente zurück, die in der unordered_multimap vorhanden sind. |
42 | unordered_multimap :: swap () Tauscht den Inhalt der ersten unordered_multimap gegen eine andere aus. |
Überladene Funktionen ohne Mitglieder
Sr.Nr. | Methode & Beschreibung |
---|---|
1 | unordered_multimap :: operator == () Testet, ob zwei ungeordnete_Multimaps gleich sind oder nicht. |
2 | unordered_multimap :: operator! = () Testet, ob zwei ungeordnete_Multimaps gleich sind oder nicht. |
3 | unordered_multimap :: swap () Tauscht den Inhalt der ersten unordered_multimap gegen eine andere aus. |