C++ std::unary_negate()

2024 年 8 月 29 日 | 阅读 3 分钟

std::unary_negate() 是一个包装函数对象。它返回其包含的一元条件的相反值。包装函数是软件库或计算机程序中的一个过程,旨在以很少或不进行额外处理的方式调用第二个子程序或系统调用。std::not1() 函数通常用于创建 unary_negate 类型的对象。

头文件

语法

它具有以下语法:

参数: std::unary_negate() 方法接受一个谓词函数对象作为输入,并返回调用该谓词函数所产生结果的逻辑对应值。

返回值: 调用谓词函数时,它返回结果的逻辑补码。

以下代码显示了 std::unary_negate() 方法

文件名:UnaryNegate.cpp

输出

5

说明

给定数组包含从 1 到 10 的数字。从数组中,大于或等于 6 的数字是 6,7,8,9,10,因此计数为 5。

示例 2

输出

There were 1 element, which was even!

说明

该程序构建了一个 IsOdd_cla 结构,作为函子(函数对象)。它提供了 operator() 方法,该方法确定给定的整数是否为奇数 (x1% 2 == 1)。此谓词用于区分奇数和偶数整数。

unary_negate 函数用于生成一个新的谓词,它是 IsOdd_obj 谓词的逆。它的目的是通过跳过对奇数的检查来查找偶数整数。

Unary_negate() 的优点

C++ 中的 unary_negate 有几个优点。C++ 中 unary_negate 函数的一些主要优点如下

  1. 代码可读性: 它通过创建一元谓词的否定来提高代码可读性和简洁性。它消除了直接为否定创建单独函数的需要,使代码更简洁明了。
  2. 应避免冗余函子定义: std::unary_negate 不是建立新的或更改现有函子来表示否定,而是自动实时生成否定版本,从而避免了额外代码的需要。
  3. 算法使用简单性: 它与 std::count_if、std::remove_if 等算法无缝结合,允许在这些算法中使用否定谓词,而无需创建额外的函数类。