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

Функция find_if

Функция find_if ищет первый элемент в диапазоне, который удовлетворяет заданному условию. В первый и второй параметры мы передаем итераторы начала и конца диапазона, а в третий - предикат (функцию или лямбду), возвращающий true или false. Если элемент найден, функция возвращает итератор на него, иначе возвращает итератор на конец диапазона.

Синтаксис

find_if(first, last, pred)

Пример

Давайте найдем первый элемент вектора, который больше 3:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {1, 2, 3, 4, 5}; auto it = find_if(vec.begin(), vec.end(), [](int x) { return x > 3; }); if (it != vec.end()) { cout << *it << endl; } else { cout << "not found" << endl; } return 0; }

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

4

Пример

Давайте найдем первую строку в векторе, длина которой больше 1:

#include <iostream> #include <vector> #include <string> #include <algorithm> using namespace std; int main() { vector<string> vec = {"a", "b", "c", "d", "e"}; auto it = find_if(vec.begin(), vec.end(), [](const string& s) { return s.length() > 1; }); if (it != vec.end()) { cout << *it << endl; } else { cout << "not found" << endl; } return 0; }

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

"not found"

Пример

Давайте найдем первый четный элемент вектора и выведем его индекс:

#include <iostream> #include <vector> #include <algorithm> using namespace std; int main() { vector<int> vec = {1, 3, 4, 5, 6}; auto it = find_if(vec.begin(), vec.end(), [](int x) { return x % 2 == 0; }); if (it != vec.end()) { cout << "index: " << (it - vec.begin()) << endl; cout << "value: " << *it << endl; } else { cout << "not found" << endl; } return 0; }

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

"index: 2" "value: 4"

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

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