РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
266 of 815 menu

Метод find

Метод find класса map выполняет поиск элемента по заданному ключу. В единственный параметр метода мы передаем ключ, который хотим найти. Метод возвращает итератор на найденный элемент пары ключ-значение. Если элемент с таким ключом отсутствует в контейнере, метод возвращает итератор на конец контейнера, то есть на end.

Поскольку контейнер map хранит элементы упорядоченно по ключу, поиск выполняется за логарифмическое время O(log n). Это делает метод find эффективным способом проверки наличия ключа и доступа к связанному с ним значению.

Синтаксис

iterator find(const Key& key); const_iterator find(const Key& key) const;

Пример

Давайте создадим словарь и найдем в нем элемент с ключом 2:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> mp = {{1, "abcde"}, {2, "12345"}, {3, "hello"}}; auto it = mp.find(2); if (it != mp.end()) { cout << it->first << " " << it->second << endl; } else { cout << "not found" << endl; } return 0; }

Результат выполнения кода:

2 12345

Пример

А теперь попробуем найти ключ, которого нет в контейнере:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> mp = {{1, "abcde"}, {2, "12345"}, {3, "hello"}}; auto it = mp.find(10); if (it != mp.end()) { cout << it->first << " " << it->second << endl; } else { cout << "not found" << endl; } return 0; }

Результат выполнения кода:

"not found"

Пример

С помощью метода find удобно изменять значение, связанное с найденным ключом:

#include <iostream> #include <map> using namespace std; int main() { map<int, string> mp = {{1, "abcde"}, {2, "12345"}, {3, "hello"}}; auto it = mp.find(1); if (it != mp.end()) { it->second = "new value"; } for (auto& pair : mp) { cout << pair.first << " " << pair.second << endl; } return 0; }

Результат выполнения кода:

"1 new value" 2 12345 "3 hello"

Смотрите также

  • класс map,
    который представляет собой упорядоченный словарь
  • метод count,
    который считает количество элементов по ключу
  • метод contains,
    который проверяет наличие ключа в контейнере
  • метод at,
    который возвращает значение по ключу
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить