Freigeben über


unordered_map::insert

Fügt ein Element oder einen Bereich von Elementen in ein unordered_map-Element ein.

// (1) single element pair<iterator, bool> insert(     const value_type& Val );   // (2) single element, perfect forwarded template<class ValTy> pair<iterator, bool> insert(     ValTy&& Val );  // (3) single element with hint iterator insert(     const_iterator Where,     const value_type& Val );   // (4) single element, perfect forwarded, with hint template<class ValTy> iterator insert(     const_iterator Where,     ValTy&& Val );  // (5) range  template<class InputIterator>  void insert(     InputIterator First,     InputIterator Last );   // (6) initializer list void insert(     initializer_list<value_type> IList ); 

Parameter

Parameter

Beschreibung

Val

Der Wert eines in das unordered_map-Element einzufügenden Elements, es sei denn, es ist bereits ein Element enthalten, dessen Schlüssel gleichwertig sortiert wird.

Where

Die Position, an dem mit der Suche nach dem richtigen Einfügepunkt begonnen wird.

ValTy

Der Vorlagenparameter, mit dem der Argumenttyp angegeben wird, der vom unordered_map-Element verwendet werden kann, um ein Element von value_type zu erstellen und Val perfekt als Argument weiterzuleiten.

First

Die Position des ersten zu kopierenden Elements.

Last

Die Position direkt über den letzten zu kopierenden Elements.

InputIterator

Das Vorlagenfunktionsargument, das den Anforderungen eines Eingabeiterators erfüllt, der auf Elemente eines Typs zeigt, der zum Erstellen von value_type-Objekten verwendet werden kann.

IList

Das initializer_list-Element, aus dem die Elemente kopiert werden sollen.

Rückgabewert

Die Einzelelement-Memberfunktionen (1) und (2) geben ein Paar zurück, dessen bool-Komponente "true" lautet, wenn eine Einfügung durchgeführt wurde, und "false", wenn im unordered_map-Element bereits ein Element enthalten ist, dessen Schlüssel einen entsprechenden Wert in der Reihenfolge aufweist. Die Iteratorkomponente des Rückgabewertpaars zeigt auf das neu eingefügten Element, wenn die bool-Komponente "true" lautet, oder auf das vorhandene Element, wenn die bool-Komponente "false" lautet.

Die Einzelelement-Memberfunktionen mit Hinweis (3) und (4) geben einen Iterator zurück, der auf die Position zeigt, an der das neue Element in das unordered_map-Element eingefügt wurde, oder, falls ein Element mit einem entsprechenden Schlüssel bereits vorhanden ist, auf das vorhandene Element.

Hinweise

Durch diese Funktion werden keine Iteratoren, Zeiger oder Verweise ungültig.

Wird beim Einfügen von nur einem Element eine Ausnahme ausgelöst, die jedoch nicht in der Hashfunktion des Containers auftritt, wird der Zustand des Containers nicht geändert. Wenn die Ausnahme in der Hashfunktion ausgelöst wird, ist das Ergebnis nicht definiert. Wird beim Einfügen mehrerer Elementen eine Ausnahme ausgelöst, wird der Container in einem nicht angegebenen doch gültigen Zustand belassen.

Um auf die Iteratorkomponente eines pair pr-Elements zuzugreifen, das von den Einzelelement-Memberfunktionen zurückgegeben wird, wird pr.first verwendet. Um den Iterator im zurückgegebenen Paar zu dereferenzieren, verwenden Sie *pr.first. Damit erhalten Sie ein Element. Um auf die bool-Komponente zuzugreifen, verwenden Sie pr.second. Eine Beispiel finden Sie unter Beispielcode weiter unten in diesem Artikel.

Das value_type-Element eines Containers ist eine Typedef, die dem Container angehört, und, für eine Zuordnung ist map<K, V>::value_type pair<const K, V>. Der Wert eines Elements ist ein sortiertes Paar, in dem die erste Komponente gleich dem Schlüsselwert und die zweite Komponente gleich dem Datenwert des Elements ist.

Die Bereichsmemberfunktion fügt die Sequenz von Elementwerten in ein unordered_map-Element ein, das jedem Element entspricht, das von einem Iterator im Bereich [First, Last) adressiert wird. Daher wird Last nicht eingefügt. Die Containermemberfunktion end() bezieht sich auf die Position direkt hinter dem letzten Element im Container. Z. B versucht die Anweisung m.insert(v.begin(), v.end()); alle Elemente von v in m einzufügen. Nur Elemente, die eindeutige Werte im Bereich aufweisen werden eingefügt. Duplikate werden ignoriert. Um zu betrachten welche Elemente abgelehnt werden, verwenden Sie die Einzelelementversionen von insert.

Die Memberfunktion für die Initialisiererliste (6) verwendet eine initializer_list, um Elemente in das unordered_map-Element zu kopieren.

Für das Einfügen eines vor Ort erstellten Elements. Das heißt, es wurden keine Kopie- oder Verschiebevorgänge ausgeführt. Informationen unter unordered_map::emplace und unordered_map::emplace_hint.

Ein Codebeispiel finden Sie unter map::insert.

Anforderungen

Header: <unordered_map>

Namespace: std

Siehe auch

Referenz

<unordered_map>

unordered_map-Klasse

Standardvorlagenbibliothek