当前位置: 首页 > news >正文

std::function

通过使用std::function,可以将不同类型的可调用对象封装成统一的格式,从而使用相同的接口进行调用;在设计回掉函数、事件处理 、函数对象等场景中十分有用。

① 封装函数指针

② 封装lambda

③ 封装成员函数等

1. 包含头文件

#include<functional>

2. 声明一个对象,返回类型(参数类型)

std::function<int(int)> myfunc;

3. 封装不同内容

3.1 封装函数指针

int func1(int x) return x * 2;

std::function<int(int)> myfunc = func1;   封装函数指针

int result = myfunc(2)                             调用封装的函数指针

3.2 封装lambda表达式

std::function myfunc = [ ](int x ) {return x * 2};

int result = myfunc(5);

3.3 封装成员函数

class A

{

public:

        int a_func(int x) {return x * 2}

};

A a;

std::function<int(A*,   int)> myfunc = &A::a_func;

int result = myfunc(5);

4. 作为函数参数

void do_something(std::function<int(int)> myfunc) {

        int result = myfunc(5);

}

int func1(int x) {return x * 2};

do_something(func1)

 

http://www.lryc.cn/news/255538.html

相关文章:

  • SQL Server——权限管理
  • 实例解析关于兔鲜登录tab栏切换案例详细讲解!
  • 制作一个RISC-V的操作系统三-编译与链接
  • tmux工具--程序部署在服务器上持久化执行
  • C语言精选——选择题Day39
  • React 笔记 jsx
  • QMenu风格设计qss+阴影
  • temu防窒息警示语贴哪里
  • Maven——坐标和依赖
  • Python中事务的常见用法
  • 蛮力法最大值连续子序问题
  • 多功能智能遥测终端机 5G/4G+北斗多信道 视频采集传输
  • 1.查看表的基本结构,表的详细结构和修改表名
  • Mybatis实用教程之XML实现动态sql
  • 混合App开发实现页面跳转(更新中)
  • 【FPGA】Verilog:BCD 加法器的实现
  • 机器学习第15天:GBDT模型
  • STM32F407-14.3.9-01输出比较模式
  • LeetCode题:174. 地下城游戏
  • CSS、JS文件无法正确加载至页面问题与解决
  • ftp的服务安装配置
  • 原码,补码,反码(极简版)
  • uniapp监听wifi连接状态
  • 2023年总结和2024年展望(以ue为主攻)
  • 南京大学计算机学院面试准备
  • API成批分配漏洞介绍与解决方案
  • 跨网文件摆渡系统:安全、可控的数字传输桥梁
  • 线程池的原理和基本使用~
  • PyTorch2.0环境搭建
  • figma 基础使用 —— 常用方法