c++ - 带有 std::all_of( ) 和 std:none_of( ) 的空容器的好用法?

标签 c++ c++11 stl-algorithm

对于空容器,std::all_of( ) 和 std:none_of( ) 都返回 true。

除了讨论这个的概念方面,有人可以建议一个不要求总是检查容器是否为空并检查 all_of 或 none_of 的成语吗?

这很麻烦,因为在空容器上的两种算法中使用相同的谓词将表明该谓词对于元素的 ALL 和 NONE 都为真。因此,您的(空) vector 是 all_of“奇数”、all_of“偶数”、none_of“奇数”和 none_of“偶数”。

在更实际的层面上,我正在考虑检查项目集合的状态,就像任何“准备好处理”一样,并期望一个空集合对应于“不,没有元素准备好”处理”。我知道我可以单独检查它是否为空,但我正在寻找其他可能性。

最佳答案

On a more practical level I am thinking in terms of checking a collection of items for a status, like are any "ready for processing", and expect an empty collection to correspond to "NO, there are no elements ready to be processed".

这就是为什么 std::<b>any</b>_of()返回 false对于空集合。

如果问题是“所有 项是否已完成处理?”,那么预期答案将是“是的,一切都已完成。”如果一开始就没有要处理的项目(即 std::all_of() 的情况)。

同样,“处理过程中没有发生错误吗?”的问题将回答“是的,没有错误。”对于空列表(无工作 -> 无错误)。这就是std::none_of()检查。

关于c++ - 带有 std::all_of( ) 和 std:none_of( ) 的空容器的好用法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15555218/

相关文章:

c++ - 元组统一初始化

c++ - 使用 static_cast 转换 POD 对象

c++ - gcc模板错误

c++ - 是否可以在编译时读取文件?

c++ - 非静态数据成员初始化

c++ - 构造类的返回值

c++ - 使用 for_each 计算 vector 中每个元素的平方和

c++ - std::copy 钩子(Hook)

c++ - 这段代码可以安全地将内存中的缓冲区作为文件打开吗?(代码似乎可以工作)

在用户插入的字符串的每个元音后插入一对字符的 C++ 代码