std::not1

来自cppreference.com
< cpp‎ | utility‎ | functional

 
 
 
函数对象
函数包装
(C++11)
(C++11)
(C++17)
绑定
(C++11)
引用包装
(C++11)
(C++11)
运算符包装
取反器
not1
(过时)
(过时)

(过时)
查找器
旧绑定器与适配器
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)

(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
(C++17 前)
 
定义于头文件 <functional>
template< class Predicate >
std::unary_negate<Predicate> not1(const Predicate& pred);
not1是一个辅助函数来创建一个函数对象,返回的补元谓词函数传递。该函数创建的对象的类型std::unary_negate<Predicate>.
原文:
not1 is a helper function to create a function object that returns the complement of the unary predicate function passed. The function object created is of type std::unary_negate<Predicate>.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
一元谓词的类型必须定义一个成员的类型,argument_type,也就是转换为谓词的参数类型。从std::ref获得一元函数对象,std::crefstd::negatestd::logical_notstd::mem_fnstd::functionstd::hash,或从另一个呼叫std::not1这种类型的定义,函数对象来自过时的std::unary_function.
原文:
The unary predicate type must define a member type, argument_type, that is convertible to the predicate's parameter type. The unary function objects obtained from std::ref, std::cref, std::negate, std::logical_not, std::mem_fn, std::function, std::hash, or from another call to std::not1 have this type defined, as are function objects derived from the deprecated std::unary_function.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

pred -
一元谓词
原文:
unary predicate
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

std::not1返回一个对象的类型std::unary_negate<Predicate>,构建pred.
原文:
std::not1 returns an object of type std::unary_negate<Predicate>, constructed with pred.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 例外

原文:
None.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#include <algorithm>
#include <functional>
#include <iostream>
#include <vector>
 
struct LessThan7 : std::unary_function<int, bool>
{
    bool operator()(int i) const { return i < 7; }
};
 
int main()
{
    std::vector<int> v;
    for (int i = 0; i < 10; ++i) {
        v.push_back(i);
    }
 
    std::cout << std::count_if(v.begin(), v.end(), std::not1(LessThan7())) << "\n";
 
    //same as above, but use a lambda function
    std::function<int(int)> less_than_9 = [](int x){ return x < 9; };
    std::cout << std::count_if(v.begin(), v.end(), std::not1(less_than_9)) << "\n";
}

输出:

3

[编辑] 另请参阅

包装函数对象,返回所持有的一元谓词的补
(类模板) [编辑]
(C++11)
包装带有指定的函数调用签名的任何类型的可调用对象
原文:
wraps callable object of any type with specified function call signature
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]
(过时)
构造自定义的 std::binary_negate 对象
(函数模板) [编辑]
(C++17 前)
从函数指针创建适配器兼容的函数对象包装
(函数模板) [编辑]
(C++17 前)
适配器兼容的一元函数的基类
原文:
adaptor-compatible unary function base class
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(类模板) [编辑]