Udostępnij za pośrednictwem


unordered_map::operator

Znajduje lub wstawia element z określonym kluczem.

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

Parametry

Parametr

Opis

Keyval

Wartość klucza, która ma być znaleziona lub wstawiona.

Wartość zwracana

Odwołanie do wartości danych wstawionego elementu.

Uwagi

Jeśli wartość klucza argumentu nie zostanie znaleziona, zostanie ona wstawiona wraz z wartością domyślną typu danych.

operator[] można wykorzystać do wstawienia elementów do mapy m za pomocą m[_Klucz] = DataValue; gdzie DataValue jest wartością mapped_type elementu z wartością klucza _Klucz.

Podczas korzystania z operator[] do wstawienia elementów, zwracane odwołanie nie wskazuje, czy wstawienie zmienia istniejący element, czy tworzy nowy.Funkcje elementów członkowskich find i insert mogą służyć do określenia, czy element z określonym kluczem już występuje przed wstawieniem.

Przykład

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

Uwagi

Funkcja elementu członkowskiego określa iterator where jako wartość zwracaną przez unordered_map::insert( unordered_map::value_type(keyval, Ty()). (Wstawia element z określonym kluczem, jeśli taki element nie istnieje.) Następnie zwraca odwołanie do (*where).second.

Wymagania

Nagłówek: <unordered_map>

Przestrzeń nazw: std

Zobacz też

Informacje

<unordered_map>

unordered_map — Klasa

unordered_map::find

unordered_map::insert

Inne zasoby

<unordered_map> Członkowie