std::ranges::any_of 订单实现细节

问题描述 投票:0回答:1

我正在查看 cpprefrence 但我没有看到任何有关执行循环顺序的信息。

我的问题:当我在

std::ranges::any_of
上拨打
data.begin(), data.end()
我确定,它会按顺序从
begin()
end()
并且停止一次
true

c++ range anyof
1个回答
0
投票

我确定它按顺序从 begin() 到 end() 并且一旦为真就会停止吗?

不,没有这样的保证。

根据所述的复杂性:

最多最后 - 第一次应用谓词和投影。

该实现可以按照与您提到的顺序不同的顺序自由迭代。它也没有义务停止在谓词为真的第一个元素上。

话虽如此,您提到的是任何“正常”实施的非常合理的期望,我假设所有人都会遵循它(尽管正如我所说,这不是强制性的)。

© www.soinside.com 2019 - 2024. All rights reserved.