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