📜  C++中的std :: all_of()(1)

📅  最后修改于: 2023-12-03 14:39:57.414000             🧑  作者: Mango

C++ 中的 std::all_of()

简介

std::all_of()是C++标准库中的一个算法,该算法可用于检查指定范围内的所有元素是否符合给定的谓词条件。如果所有元素都符合条件,则该函数返回true,否则返回false。

std::all_of()需要的参数包括:要扫描的范围、谓词条件(可作为lambda表达式传递)。

语法
template< class InputIt, class UnaryPredicate >
bool all_of( InputIt first, InputIt last, UnaryPredicate p );

以上是std::all_of()的函数声明,其中:

  • firstlast:迭代器,指定要检查的范围。代表一个左闭右开区间。
  • p:一元谓词函数或可调用对象,将应用于范围中的每个元素。
示例

下面的示例演示了如何使用std::all_of()函数:

#include <iostream>
#include <algorithm>
#include <vector>

int main()
{
    std::vector<int> vec = {1, 2, 3, 4, 5};

    // 判断是否所有元素都是奇数
    if (std::all_of(vec.begin(), vec.end(), [](int i){return i%2 != 0;}))
    {
        std::cout << "All elements are odd.\n";
    }
    else
    {
        std::cout << "Not all elements are odd.\n";
    }

    return 0;
}

输出:

Not all elements are odd.

这个例子中,我们传递了一个 lambda 表达式作为谓词条件,用于判断 vec 中的每个元素是否为奇数。由于有 24 两个偶数元素,因此判断结果是 false。

注意事项
  • 可以使用std::none_of()函数来检查指定范围内是否没有元素符合给定的谓词条件。
  • 在使用std::all_of()时,应确保范围内的元素可以进行一元谓词操作,否则可能会导致未定义行为。
  • 范围为空时,std::all_of()返回true