C++使用std库在满足条件的 vector 中找到第一个元素

标签 c++ search vector find

我有一个包含对象的 vector ,每个对象都有一个返回 bool 值的方法。 我想找到其方法返回 true 的第一个元素。

我知道我可以使用 for 循环简单地迭代 vector ,但我正在寻找使用 std 库的解决方案

谷歌搜索我什么也没找到,只有 findfind_if 函数,但这不是我要找的。我正在寻找一个基本上引用 vector 和 lambda 并返回 lambda 返回 true 的第一个元素的函数。

注意:我也会对返回一个元素的函数感兴趣,而且不一定是第一个。

最佳答案

您要找的是std::ranges::find_if你会像这样使用它

auto iterator = std::ranges::find_if(vector, lambda);

这确实需要 C++20 支持。如果你没有那个,那么使用普通的旧 std::find_if like

auto iterator = std::find_if(vector.begin(), vector.end(), lambda);

关于C++使用std库在满足条件的 vector 中找到第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62957225/

相关文章:

c++ - 断言 vector 按值 x 划分

c++ - 何时使用 reinterpret_cast?

c++ - CMake 找不到 OpenCV 库

没有提升的 C++ 简单聊天客户端

重复或循环参数

C++ 排序不区分大小写的 vector 对

c++ - 如何在 C++ 的类构造函数中使用线程?

java - 获取所有可能的组合以获得给定的没有重复数字的总和

python - 计算将数组中的值向上或向下舍入以最小影响平均值的点的算法

search - Java 库方法在集合中查找项目并检查是否完全匹配