gpt4 book ai didi

c++ - 为 std::any_of 等提供反向迭代器是否有意义?

转载 作者:行者123 更新时间:2023-12-02 14:15:17 25 4
gpt4 key购买 nike

我想检查 vector 中是否存在某个值。它最有可能位于 vector 的末尾,使用像这样的反向迭代器是否有意义:

std::vector<int> v{};
//... add a lot of values ...
const int valueToCheckFor{42};
if (std::any_of(v.crbegin(), v.crend(), [valueToCheckFor](const auto x){ return valueToCheckFor == x; }

或者是

if (std::any_of(v.cbegin(), v.cend(), [valueToCheckFor](const auto x){ return valueToCheckFor == x; }

同样,由于 std::any_of 中的执行顺序未指定,我最好使用 for 循环?

这适用于 c++11/c++14

最佳答案

如果元素可能位于末尾。

std::any_of(v.crbegin(), 
v.crend(),
[valueToCheckFor](const auto x)
{ return valueToCheckFor == x;
});

更有意义并且可以正常工作。

关于c++ - 为 std::any_of 等提供反向迭代器是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60561214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com