首页/新闻资讯/正文详情

std::function

发布时间:2026/11/6 8:26:39 来源:云帆数科 栏目:资讯中心
std::function
文章目录1. 简介1.1.1 和函数指针对比1.1.2 绑定普通函数1.1.3 绑定类的静态成员函数1.1.3 绑定类的普通成员函数1.1.4 绑定类函数模板1.1.5 绑定类共有数据成员1.1.6 回调函数方式1.1.7 使用 std::bind 与 lambda 表达式绑定1. 简介函数模板std::function是一种通用、多态的函数封装。std::function可以存储和调用任何可调用的目标。1.1.1 和函数指针对比/* 函数指针方式 */typedefvoid(*callbackFun)(int,int);voidfun(intnum1,intnum2){};callbackFun f1fun;f1(1,2);/* std::function方式 */voidfun(intnum1,intnum2){};std::functionvoid(int,int)f2fun;f2(1,2);1.1.2 绑定普通函数voidfunc(void){std::cout__FUNCTION__endl;}std::functionvoid(void)fpfunc;fp();//调用1.1.3 绑定类的静态成员函数classObj{public:staticintfunc(inta,intb){returnab;}};std::functionint(int,int)fpObj::func;fp(1,2);1.1.3 绑定类的普通成员函数classObj{public:intfunc(inta){coutaendl;return0;}};/************************ 第二种声明方法是采用类对象的引用 *************************/std::functionint(Obj,int)fpObj::func;std::functionint(Obj,int)fpObj::func;//要传入具体对象Obj obj1;fp(obj1,2);1.1.4 绑定类函数模板classObj{public:templateclassTTfunc(T a,T b){return(T)0;}};/* 模板为int */std::functionint(Obj,int,int)fpObj::funcint;Obj obj1;fp(obj1,1,2);/* 模板为string */std::functionstring(Obj,string,string)fpObj::funcstring;Obj obj2;fp(obj2,a,b);1.1.5 绑定类共有数据成员classObj{public:intnum;Obj(inttNum):num(tNum){}};std::functionint(Obj)intpObj::num;Objobj1(100);couintp(obj1)endl;//输出为100.1.1.6 回调函数方式voidcall(string a,std::functionint(string)fp){fp(a);}intfunc(stringa){coutaendl;return0;}call(hello,func);1.1.7 使用 std::bind 与 lambda 表达式绑定lambda 表达式更直观可以捕获外部变量也能直接调用成员函数。#includefunctional#includeiostreamintadd(inta,intb){returnab;}classObj{public:intbase;Obj(inttBase):base(tBase){}intfunc(inta){returnbasea;}};intmain(){/* 1. 包装普通函数固定第一个参数 */std::functionint(int)f1[](intb){returnadd(10,b);};std::coutf1(5)std::endl;// 输出 15/* 2. 捕获外部变量 */intx100;std::functionint(int)f2[x](intb){returnadd(x,b);};std::coutf2(5)std::endl;// 输出 105/* 3. 调用类的普通成员函数 */Objobj(100);std::functionint(int)f3[obj](inta){returnobj.func(a);};std::coutf3(1)std::endl;// 输出 101/* 4. 作为回调传入 */autocallback[](inta,intb){std::coutabstd::endl;};std::functionvoid(int,int)f4callback;f4(1,2);// 输出 3return0;}

相关推荐

idea 无限续期方法
idea 无限续期方法

1、打开IDEA,选择file—settings----plugins 2、点击Manage Plugins Repositories,在弹出窗口右侧,点击号,输入:https://plugins.zhile.io,也就是手动添加第三方插件仓库地址 3、搜索 ide eval reset 插件 … · 2026/11/6 8:26:39

分布式版本控制系统Git 二:操作GitHub
分布式版本控制系统Git 二:操作GitHub

分布式版本控制系统GitHub 本篇文章建议与上一篇 一起食用效果更佳 话不多说进入正题! git和github概念: Git: 是一个版本管理工具,是可以在你电脑不联网的情况下,只在本地使用的一个版本管理工具 Github github&#xff0c… · 2026/11/6 8:25:39

AD域控Exchange邮箱(二)——卸载ExchangeServer2010报错:“有些控件无效 - 请指定要卸载的现有服务器” 解决方法
AD域控Exchange邮箱(二)——卸载ExchangeServer2010报错:“有些控件无效 - 请指定要卸载的现有服务器” 解决方法

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 8:25:39

特种工哪个工资高点好 内部消息告诉你真相
特种工哪个工资高点好 内部消息告诉你真相

特种工哪个工资高点好 内部消息告诉你真相 之前考的证在外省能不能转过来?这是很多特种作业人员最头疼的问题。现在各地对特种作业证的管理越来越严格, 内部消息… · 2026/11/6 23:50:38

郎朗上口的实操考试心理没底?鄞州区高配电工证培训官方报名入口全攻略
郎朗上口的实操考试心理没底?鄞州区高配电工证培训官方报名入口全攻略

郎朗上口的实操考试心理没底?鄞州区高配电工证培训官方报名入口全攻略 实操考试心里没底怕挂科?很多人在准备考高配电工证的时候,最担心的就是实操环节,一不小心就可能因为操作不当或流程不熟而被淘汰。别急,今天就来聊一聊 鄞州区高配电工证培训… · 2026/11/6 23:50:38

南坪哪里能考电工证官方报名入口在哪里
南坪哪里能考电工证官方报名入口在哪里

南坪哪里能考电工证官方报名入口在哪里 学历不高怕报不上名,其实电工证考试门槛并不高,关键是你得知道 南坪哪里能考电工证 和怎么操作。现在越来越多的人意识到,持有电工证不仅能提高就业竞争力,还能保障自身和他人的安全。不过,很多人担心自己学历不… · 2026/11/6 23:50:38

机械高压电工证怎么考千万别踩坑
机械高压电工证怎么考千万别踩坑

机械高压电工证怎么考千万别踩坑 你是不是正在为机械高压电工证怎么考发愁?怕被中介坑、怕走弯路、怕花冤枉钱?现在市面上太多虚假机构打着“包过”“代考”“快速出证”的旗号, 千万别踩坑… · 2026/11/6 23:50:38

重庆等级电工证怎么考?上岗必备的实操考试到底考啥
重庆等级电工证怎么考?上岗必备的实操考试到底考啥

重庆等级电工证怎么考?上岗必备的实操考试到底考啥 你是不是也在网上搜“重庆等级电工证怎么考”,结果一堆乱七八糟的信息,不知道去哪报名,怕被中介坑?别急,这篇文章就是专门给你这种担心的人准备的,从怎么报名、怎么准备、怎么避坑,一网打尽,… · 2026/11/6 23:50:38

机械高压电工证怎么考 电子证书怎么领 高中毕业也能考吗
机械高压电工证怎么考 电子证书怎么领 高中毕业也能考吗

机械高压电工证怎么考 电子证书怎么领 高中毕业也能考吗 学历不高怕报不上名?机械高压电工证怎么考,电子证书怎么领,别急,我这有真实案例,还有流程和避坑经验。… · 2026/11/6 23:49:38

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

三菱PLC数据采集到数据库的时序设计:Python+MC协议实战
三菱PLC数据采集到数据库的时序设计:Python+MC协议实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

ASIC主模式RTL设计:状态机与三态驱动的流片级实现
ASIC主模式RTL设计:状态机与三态驱动的流片级实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

STM32嵌入式C++开发:GDB调试与Renode仿真实战指南
STM32嵌入式C++开发:GDB调试与Renode仿真实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 1:02:11

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码