How to use ranges::find_if to find the first element in the range that satisfies a criteria with C++

2 Answers

0 votes
#include <algorithm>
#include <iostream>

int main()
{
    namespace ranges = std::ranges;
 
    const auto vec = {5, 3, 1, 100, 9, 2, 2};
 
    auto is_even = [](int x) { return x % 2 == 0; };
 
    auto result = ranges::find_if(vec.begin(), vec.end(), is_even);
    
    if (result != vec.end()) {
         std::cout << "First even element in vector: " << *result << '\n';
    }
    else {
        std::cout << "No even elements in vector\n";
    }
}


 
 
/*
run:

First even element in vector: 100

*/

 



answered Apr 28, 2024 by avibootz
0 votes
#include <algorithm>
#include <iostream>

int main()
{
    namespace ranges = std::ranges;
 
    const auto vec = {5, 3, 1, 800, 9, 2, 2};

    auto divides_4 = [](int x) { return x % 4 == 0; };
    
    auto result = ranges::find_if(vec, divides_4);
 
    if (result != vec.end()) {
        std::cout << "First element divisible by 4 in vector: " << *result << '\n';
    }
    else {
        std::cout << "No elements in vector are divisible by 4\n";
    }
}


 
 
/*
run:

First element divisible by 4 in vector: 800

*/

 



answered Apr 28, 2024 by avibootz
...