我有一个包含对象的 vector ,每个对象都有一个返回 bool 值的方法。
我想找到其方法返回 true
的第一个元素。
我知道我可以使用 for
循环简单地迭代 vector ,但我正在寻找使用 std 库的解决方案。
谷歌搜索我什么也没找到,只有 find
和 find_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/