C++ 算法 none_of() 函数

定义和用法

none_of() 函数检测数据范围内是否没有任何元素满足指定条件。

当所有元素都不满足条件时返回 true,只要有一个元素满足条件就返回 false。

数据范围通过迭代器指定。

条件判断由一个谓词函数定义,该函数接收元素值作为参数,返回布尔值(满足条件返回 true,不满足返回 false)。

实例

检测 vector 中是否不存在大于 10 的数字:

bool greater_than_10(int value) {
  return value > 10;
}

int main() {
  vector<int> numbers = {1, 7, 3, 5, 9, 2};
  if (none_of(numbers.begin(), numbers.end(), greater_than_10)) {
    cout << "所有数字都不大于10";  // 符合条件时会执行此输出
  } else {
    cout << "存在大于10的数字"; 
  }
  return 0;
}

亲自试一试

语法

none_of(iterator start, iterator end, function condition);

参数

参数 描述
start 必需。指向待检测数据范围起始位置的迭代器。
end

必需。指向待检测数据范围结束位置的迭代器。

将检测到该位置之前的元素。

condition 必需。接收元素值并返回布尔值的谓词函数。

技术细节

返回:

布尔值:

  • true(1) - 当所有元素都不满足条件时
  • false(0) - 当至少存在一个元素满足条件时

说明:

该函数是 all_of() 的逻辑反操作,相当于 !any_of(),采用短路评估机制(遇到第一个满足条件的元素立即返回 false)。

相关页面

教程:C++ 数据结构

教程:C++ 迭代器

教程:C++ 算法

教程:C++ 布尔值