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

Функция ranges::find

Функция ranges::find ищет первое вхождение заданного значения в диапазоне и возвращает итератор на найденный элемент. В первом параметре мы передаем диапазон, в котором выполняется поиск, а во втором - значение, которое нужно найти. Если элемент не найден, функция возвращает итератор на конец диапазона.

Функция доступна в заголовочном файле <algorithm> и появилась в стандарте C++20. Она является частью библиотеки ranges и работает с диапазонами напрямую, без необходимости передавать начальный и конечный итераторы.

Синтаксис

ranges::find(range, value) ranges::find(range, value, pred)

Пример

Давайте найдем число 3 в векторе {1, 2, 3, 4, 5} и выведем результат поиска:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = ranges::find(v, 3); if (it != v.end()) { cout << "Found: " << *it << endl; } else { cout << "Not found" << endl; } return 0; }

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

"Found: 3"

Пример

Давайте попробуем найти число 10, которого нет в векторе {1, 2, 3, 4, 5}:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = ranges::find(v, 10); if (it != v.end()) { cout << "Found: " << *it << endl; } else { cout << "Not found" << endl; } return 0; }

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

"Not found"

Пример

Давайте найдем позицию элемента в векторе, используя функцию distance:

#include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main() { vector<int> v = {1, 2, 3, 4, 5}; auto it = ranges::find(v, 4); if (it != v.end()) { cout << "Index: " << distance(v.begin(), it) << endl; } return 0; }

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

"Index: 3"

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

  • функция ranges::count,
    которая считает количество вхождений элемента
  • функция ranges::begin,
    которая возвращает итератор на начало диапазона
  • функция ranges::end,
    которая возвращает итератор на конец диапазона
  • функция distance,
    которая вычисляет расстояние между итераторами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить