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.