Condividi tramite


unordered_map::operator

Trova o inserisce un elemento con la chiave specificata.

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

Parametri

Parametro

Descrizione

Keyval

Il valore della chiave da cercare oppure inserire.

Valore restituito

Un riferimento al valore dei dati dell'elemento inserito.

Note

Se il valore della chiave dell'argomento non viene trovato, viene inviato al valore predefinito del tipo di dati.

operator[] può essere utilizzato per inserire elementi in un mapping m. tramite m.[_chiave] = DataValue; dove DataValue è il valore di mapped_type elemento con un valore di chiave di _chiave.

Quando si utilizzano operator[] per inserire elementi, il riferimento restituito non indica se un inserimento viene modificato un elemento esistente oppure sta creando un nuovo oggetto.le funzioni membro ricerca e inserire può essere utilizzato per determinare se un elemento con una chiave specificata è già presente prima di un inserimento.

Esempio

// 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); 
    } 
 
  

Note

la funzione membro determina l'iteratore where come valore restituito di unordered_map::insert(unordered_map::value_type(keyval, Ty()).(Inserisce un elemento con la chiave specificata se tale elemento non esiste.) Restituisce un riferimento a (*where).second.

Requisiti

intestazione: <unordered_map>

Spazio dei nomi: deviazione standard

Vedere anche

Riferimenti

<unordered_map>

unordered_map Class

unordered_map::find

unordered_map::insert

Altre risorse

<unordered_map> membri