对于空容器,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/