unordered_map::operator[]
Recherche ou insère un élément avec la clé spécifiée.
Ty& operator[](const Key& keyval);
Ty& operator[](Key&& keyval);
Paramètres
Paramètre |
Description |
Keyval |
Valeur de clé à rechercher ou à insérer. |
Valeur de retour
Référence à la valeur de données de l'élément inséré.
Notes
Si la valeur de clé d'argument est introuvable, elle est insérée avec la valeur par défaut du type de données.
operator[] peut être utilisé pour insérer des éléments dans une classe map m en utilisant m[_Key] = DataValue ; où DataValue est la valeur du mapped_type de l'élément avec une valeur de clé de _Key.
Lorsque vous utilisez operator[] pour insérer des éléments, la référence retournée n'indique pas si l'insertion va modifier un élément existant ou en créer un nouveau. Les fonctions membres find et insert peuvent être utilisées pour déterminer si un élément avec une clé spécifiée était déjà présent avant l'insertion.
Exemple
// 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);
}
Notes
La fonction membre détermine l'itérateur where comme valeur de retour de unordered_map::insert( unordered_map::value_type(keyval, Ty()) (elle insère un élément avec la clé spécifiée si aucun élément de ce type n'existe). Elle retourne ensuite une référence à (*where).second.
Configuration requise
En-tête : <unordered_map>
Espace de noms : std