Оператор []
Оператор [] в классе unordered_map возвращает ссылку на значение, ассоциированное с указанным ключом. В качестве параметра оператор принимает ключ, по которому нужно получить доступ к элементу. Если элемент с таким ключом отсутствует в контейнере, он создается со значением по умолчанию для типа данных (например, 0 для чисел или пустая строка для string), а затем возвращается ссылка на него.
Этот оператор удобен для быстрого доступа к элементам, но требует осторожности: обращение к несуществующему ключу изменяет размер контейнера.
Синтаксис
map[key]
Пример
Давайте создадим unordered_map и получим значение по существующему ключу:
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
int main()
{
unordered_map<string, int> umap = {{"a", 1}, {"b", 2}};
cout << umap["a"] << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Если ключа нет в контейнере, оператор создает его. Давайте проверим это:
#include <iostream>
#include <unordered_map>
#include <string>
using namespace std;
int main()
{
unordered_map<string, int> umap = {{"a", 1}, {"b", 2}};
cout << umap["c"] << endl;
cout << umap.size() << endl;
return 0;
}
Результат выполнения кода:
0
3
Смотрите также
-
класс
unordered_map,
который представляет собой хеш-таблицу -
метод
at,
который безопасно возвращает значение по ключу -
метод
insert,
который вставляет элементы в контейнер -
метод
find,
который ищет элемент по ключу