Freigeben über


unordered_map::operator[]

Sucht ein Element mit dem angegebenen Schlüssel oder fügt es ein.

Ty& operator[](const Key& keyval);
Ty& operator[](Key&& keyval);

Parameter

Parameter

Beschreibung

Keyval

Der zu suchende oder einzufügende Schlüsselwert.

Rückgabewert

Ein Verweis auf den Datenwert des eingefügten Elements.

Hinweise

Wenn der Argumentschlüsselwert nicht gefunden wird, wird er zusammen mit dem Standardwert des Datentyps eingefügt.

operator[] kann zum Einfügen von Elementen in eine Zuordnung m mit m[_Key] = DataValue verwendet werden, wobei DataValue der Wert mapped_type des Elements mit einem Schlüsselwert _Key ist.

Wenn operator[] zum Einfügen von Elementen verwendet wird, gibt der zurückgegebene Verweis nicht an, ob eine Einfügung ein bereits vorhandenes Element ändert oder ein neues erstellt. Die Memberfunktionen find und insert können verwendet werden, um zu bestimmen, ob ein Element mit einem bestimmten Schlüssel vor einer Einfügung bereits vorhanden ist.

Beispiel

// std__unordered_map__unordered_map_operator_sub.cpp 
// compile with: /EHsc 
#include <unordered_map> 
#include <iostream> 
#include <string>
 
typedef std::unordered_map<char, int> Mymap; 
int main() 
    { 
    Mymap c1; 
 
    c1.insert(Mymap::value_type('a', 1)); 
    c1.insert(Mymap::value_type('b', 2)); 
    c1.insert(Mymap::value_type('c', 3)); 
 
// display contents " [c 3] [b 2] [a 1]" 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 
 
// try to find and fail 
    std::cout << "c1['A'] == " << c1['A'] << std::endl; 
 
// try to find and succeed 
    std::cout << "c1['a'] == " << c1['a'] << std::endl; 
 
// redisplay contents 
    for (Mymap::const_iterator it = c1.begin(); 
        it != c1.end(); ++it) 
        std::cout << " [" << it->first << ", " << it->second << "]"; 
    std::cout << std::endl; 

// insert by moving key
    std::tr1::unordered_map<string, int> c2;
    std::string str("abc");
    std::cout << "c2[std::move(str)] == " << c2[std::move(str)] << std::endl;
    std::cout << "c2["abc"] == " << c2["abc"] << std::endl;
 
    return (0); 
    } 
 
  

Hinweise

Die Memberfunktion bestimmt den Iterator where als Rückgabewert von unordered_map::insert( unordered_map::value_type(keyval, Ty()). (Sie fügt ein Element mit dem angegebenen Schlüssel ein, wenn kein solches Element vorhanden ist). Anschließend gibt sie einen Verweis auf (*where).second zurück.

Anforderungen

Header: <unordered_map>

Namespace: std

Siehe auch

Referenz

<unordered_map>

unordered_map-Klasse

unordered_map::find

unordered_map::insert

Weitere Ressourcen

<unordered_map> Member