Поделиться через


unordered_map::operator

Находит или вставляет элемент с указанным ключом.

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

Параметры

Параметр

Описание

Keyval

Значение ключа для поиска или ввод.

Возвращаемое значение

Ссылка на значение данных, введенного элемента.

Заметки

Если значение аргумента не найдено, оно будет вставлено, а значение по умолчанию для типа данных.

operator[] может использоваться для вставки элементы сопоставления M использование M[_ключ] = DataValue; где DataValue значение mapped_type элемента со значением ключа, _ключ.

При использовании operator[] чтобы вставить элементы, возвращаемая ссылка не показывает, изменяется ли вставка существующего элемента или создайте новый.Функции элементов найти и insert может использоваться, чтобы определить, присутствует ли элемент с указанным ключом уже перед вставкой.

Пример

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

Заметки

Функция-член определяет итератор where как возвращаемое значение unordered_map::insert(unordered_map::value_type(keyval, Ty()).(Он вставляет элемент с указанным ключом, если такой элемент отсутствует.) Затем он возвращает ссылку на (*where).second.

Требования

заголовок:<unordered_map>

пространство имен: STD

См. также

Ссылки

<unordered_map>

unordered_map Class

unordered_map::find

unordered_map::insert

Другие ресурсы

Члены <unordered_map>