Метод contains
Метод contains проверяет, присутствует ли в контейнере map элемент с указанным ключом. Метод возвращает true, если элемент найден, и false в противном случае. В единственный параметр мы передаем ключ, наличие которого необходимо проверить. Метод не изменяет контейнер и работает за логарифмическое время.
Синтаксис
map.contains(key)
Пример
Давайте создадим map с несколькими элементами и проверим наличие ключа 2, который точно существует:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp = {{1, "abcde"}, {2, "12345"}};
cout << mp.contains(2) << endl;
return 0;
}
Результат выполнения кода:
1
Пример
Теперь проверим наличие ключа 3, которого в контейнере нет:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<int, string> mp = {{1, "abcde"}, {2, "12345"}};
cout << mp.contains(3) << endl;
return 0;
}
Результат выполнения кода:
0
Пример
Метод contains удобно использовать в условии для безопасного доступа к элементу через метод at:
#include <iostream>
#include <map>
using namespace std;
int main()
{
map<string, int> mp = {{"abcde", 1}, {"12345", 2}};
if (mp.contains("abcde")) {
cout << mp.at("abcde") << endl;
} else {
cout << "not found" << endl;
}
return 0;
}
Результат выполнения кода:
1