开发手册 欢迎您!
软件开发者资料库

C ++库 - < functional>

C ++&lt;functional&gt;库 - 从基本概念到高级概念,从简单而简单的步骤学习C ++算法库,其中包括C ++标准库和标准模板库(STL),涵盖所有内置类和函数。所有C ++容器,算法,函数,类,常量和头文件都使用非常容易理解的示例进行了详细解释,fstream,iomanip,ios,iosfwd,iostream,istream,ostream,sstream,streambuf,atomic,complex,exception ,功能,限制,区域设置,内存,新,数字,正则表达式,stdexcept,字符串,线程,元组,typeinfo,实用程序,valarray,数组,bitset,deque,转发列表,列表,地图,队列,设置,堆栈,无序地图,无序集,向量,算法,迭代器。

简介

函数对象是专门设计用于与函数类似语法的对象. std :: function的实例可以存储,复制和调用任何Callable目标 - 函数,lambda表达式,绑定表达式或其他函数对象,以及指向成员函数和指向数据成员的指针.

声明

以下是std :: function的声明.

templateclass function;

C ++ 11

template< class R, class... Args >class function

参数

  • R :  result_type.

  • argument_type : 如果sizeof ...(Args)== 1并且T是Args中的第一个也是唯一的类型.

示例

在下面的std :: function示例中.

#include #include struct Foo {   Foo(int num) : num_(num) {}   void print_add(int i) const { std::cout << num_+i << '\n'; }   int num_;}; void print_num(int i) {   std::cout << i << '\n';}struct PrintNum {   void operator()(int i) const {      std::cout << i << '\n';   }};int main() {   std::function f_display = print_num;   f_display(-9);   std::function f_display_42 = []() { print_num(42); };   f_display_42();   std::function f_display_31337 = std::bind(print_num, 31337);   f_display_31337();   std::function f_add_display = &Foo::print_add;   const Foo foo(314159);   f_add_display(foo, 1);   std::function f_num = &Foo::num_;   std::cout << "num_: " << f_num(foo) << '\n';   using std::placeholders::_1;   std::function f_add_display2= std::bind( &Foo::print_add, foo, _1 );   f_add_display2(2);    std::function f_add_display3= std::bind( &Foo::print_add, &foo, _1 );   f_add_display3(3);   std::function f_display_obj = PrintNum();   f_display_obj(18);}

示例输出应该是这样的 :

  -9  42  31337  314160  num_:314159  314161  314162  18

会员功能

会员功能

Sr.No.成员函数定义
1(构造函数)它用于构造一个新的std: :function instance
2(析构函数)它用于销毁std :: function实例
3operator =用于分配新目标
4swap用于交换内容
5分配它用于分配新目标
6operator bool用于检查是否包含有效目标
7operator()它用于调用目标

Sr.No.非成员函数定义1 std :: swap  它专门用于std :: swap算法2 operator == operator!=  它将std :: function与nullptr进行比较

运算符类

Sr.No.运算符类定义
1bit_and这是一个按位AND函数对象类
2bit_or这是一个按位OR函数对象类
3bit_xor这是一个按位XOR函数对象类
3divides这是一个除法函数对象类
4equal_to它是一个相等的函数对象类比较
5greater这是一个大于不等式比较的函数对象类
6greater_equal这是一个大于或等于的函数对象类等于比较
7less这是一个函数对象类,用于减少 - 比不等式比较
8less _equal这是一个比较小于或等于的函数对象类
9logical_and这是一个逻辑AND函数对象类
10logical_not这是一个合乎逻辑的NOT函数对象类
11logical_or这是一个逻辑OR函数对象类
12minus这是一个减法函数对象类
1 3modulus这是一个模数函数对象类
14multiplies这是一个乘法函数对象类
15negate这是一个负函数对象类
16not_equal_to它是用于非等式比较的函数对象类
17plus这是一个加法函数对象类