📜  C++ STL-algorithm.find_if_not()函数(1)

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

C++ STL-algorithm.find_if_not() 函数介绍

简介

C++ STL 的 algorithm.find_if_not() 函数用于在指定范围内查找第一个不满足特定条件的元素,并返回其迭代器。

函数原型:

template< class InputIt, class UnaryPredicate >
InputIt find_if_not( InputIt first, InputIt last, UnaryPredicate p );

参数:

  • first 待查找范围的起始迭代器。
  • last 待查找范围的终止迭代器(不包括)。
  • p 一个一元谓词,将用于检测元素是否满足条件。

返回值:

  • 如果找到不满足条件的元素,则返回该元素的迭代器。
  • 如果所有元素都满足条件,则返回 last。
示例

以下是一个使用 find_if_not() 函数查找第一个奇数的示例:

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

int main() {
    std::vector<int> vec = { 2, 4, 6, 7, 8, 10 };
    auto it = std::find_if_not(vec.begin(), vec.end(), [](auto x) { return x % 2 == 0; });
    if (it != vec.end()) {
        std::cout << "Found odd number: " << *it << std::endl;
    } else {
        std::cout << "No odd number found" << std::endl;
    }
    return 0;
}

输出结果为:

Found odd number: 7
注意事项
  • 一元谓词 p 必须返回可转换为 bool 类型的值。
  • 如果给定范围为空,该函数的行为未定义。
  • 在 C++ 20 中,该函数已重载为接受迭代器和大小作为参数,可以避免由给定范围为空而导致的未定义行为。

以上是 C++ STL-algorithm.find_if_not() 函数的介绍和示例,希望能帮助您更好地了解这个函数。