Partager via


unordered_map::operator

Recherches 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

La valeur de clé à rechercher ou insérer.

Valeur de retour

une 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 carte m à m[_Key] = DataValue; où DataValue est la valeur d' mapped_type de l'élément avec une valeur de clé de _Key.

En utilisant operator[] pour insérer des éléments, la référence retournée n'indique pas si une insertion modifie un élément existant ou en crée une.Les fonctions membres recherche et insertion peuvent être utilisées pour déterminer si un élément avec une clé spécifiée est déjà installé avant une insertion.

Exemple

// std_tr1__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 d' unordered_map::insert(unordered_map::value_type(keyval, Ty()).(Il insère un élément avec la clé spécifiée s'il n'existe aucun élément.) Il retourne ensuite une référence à (*where).second.

Configuration requise

en-tête : <unordered_map>

l'espace de noms : type

Voir aussi

Référence

<unordered_map>

unordered_map Class

unordered_map::find

unordered_map::insert

Autres ressources

<unordered_map> membres