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