Вы можете сделать это легко без лямбды:
auto val = std::find(intVect.begin(), intVect.end(), 3);
if (val != intVect.end()) {
std::cout << "Value found\n";
}
Тем не менее, также можно использовать лямбду, но вам нужно использовать std::find_if
(доступно в том же заголовок как std::find
: <algorithm>
):
auto val = std::find_if(intVect.begin(), intVect.end(), [](int i) { return i == 3; });
if (val != intVect.end()) {
std::cout << "Value found\n";
}
Но в этом нет никакого смысла. В этом случае вы будете использовать find_if
только в том случае, если у вас есть что-то более сложное, например struct
, и вы искали определенного члена:
struct complex {
int id;
...
};
std::vector<complex> things = ...;
auto val = std::find_if(things.begin(), things.end(), [](const complex& c) { return c.id == 3; });
if (val != things.end()) {
std::cout << "Value found\n";
}