Класс map
Класс map - это ассоциативный контейнер,
который хранит элементы в виде пар
"ключ-значение". Каждый ключ уникален,
а данные автоматически сортируются по ключу
в порядке возрастания. В первом параметре
шаблона указывается тип ключа, а во втором -
тип значения. Для доступа к элементам
используется оператор [] или метод
at.
Синтаксис
#include <map>
std::map<KeyType, ValueType> mapName;
Пример
Давайте создадим словарь, который сопоставляет числовые ключи строковым значениям, и выведем его элементы:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp;
mp[1] = "abcde";
mp[2] = "12345";
mp[3] = "hello";
for (auto& pair : mp)
{
cout << pair.first << ": " << pair.second << endl;
}
return 0;
}
Результат выполнения кода:
"1: abcde"
"2: 12345"
"3: hello"
Пример
Давайте найдем значение по ключу с помощью
метода find и проверим наличие ключа
через метод count:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp;
mp[1] = "abcde";
mp[2] = "12345";
auto it = mp.find(2);
if (it != mp.end())
{
cout << it->second << endl;
}
cout << mp.count(1) << endl;
cout << mp.count(5) << endl;
return 0;
}
Результат выполнения кода:
12345
1
0
Пример
Давайте удалим элемент по ключу с помощью
метода erase и выведем размер
контейнера:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp;
mp[1] = "abcde";
mp[2] = "12345";
mp[3] = "hello";
mp.erase(2);
cout << mp.size() << endl;
for (auto& pair : mp)
{
cout << pair.first << ": " << pair.second << endl;
}
return 0;
}
Результат выполнения кода:
2
"1: abcde"
"3: hello"