第二十四章 STL-函数对象

一、函数对象

1、函数对象概念

概念:

  • 重载函数调用操作符的类,其对象常称为函数对象

  • 函数对象使用重载的()时,行为类似函数调用,也叫仿函数

本质:

函数对象(仿函数)是一个,不是一个函数

2、函数对象使用

特点:

  • 函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值

  • 函数对象超出普通函数的概念,函数对象可以有自己的状态

  • 函数对象可以作为参数传递

示例:

#include <string>​//1、函数对象在使用时,可以像普通函数那样调用, 可以有参数,可以有返回值class MyAdd{public :int operator()(int v1,int v2){return v1 + v2;}};​void test01(){MyAdd myAdd;cout << myAdd(10, 10) << endl;}​//2、函数对象可以有自己的状态class MyPrint{public:MyPrint(){count = 0;}void operator()(string test){cout << test << endl;count++; //统计使用次数}​int count; //内部自己的状态};void test02(){MyPrint myPrint;myPrint("hello world");myPrint("hello world");myPrint("hello world");cout << "myPrint调用次数为: " << myPrint.count << endl;}​//3、函数对象可以作为参数传递void doPrint(MyPrint &mp , string test){mp(test);}​void test03(){MyPrint myPrint;doPrint(myPrint, "Hello C++");}​int main() {​//test01();//test02();test03();​system("pause");​return 0;}

总结:

  • 仿函数写法非常灵活,可以作为参数进行传递。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/214754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[方法论]allocation 空间内容分配

区分度 typeanalysisrecognitionconclusion type - 阅读 - 理解- 背诵- 听课 看 听 思考- reproduce/ 默写/ 应用- 背- 想- 写analysis 理解 和 背 是不占用现实空间的&#xff0c;可以在脑内不断消化&#xff0c;可以飞配给没有空间的时间块。 阅读 和 写是占用现实空间的…

企业如何选择合适的信息化管理系统?

一、什么是信息化管理系统 信息化这个词在近年已经被说烂了&#xff0c;在信息化快速发展的时代&#xff0c;越来越多的企业开始意识到信息化管理系统的重要性。信息化管理系统是指一种能够帮助企业或组织有效管理信息资源&#xff0c;提高信息的可靠性、安全性和有效性的软件…

博世汽车产业转型,裁1500人 | 百能云芯

博世&#xff08;Bosch&#xff09;&#xff0c;作为全球领先的汽车零部件制造商&#xff0c;近日宣布了一项战略性的组织调整计划&#xff0c;以更好地适应不断演变的汽车行业需求和技术革新。根据《路透社》的报道&#xff0c;博世计划在2025年底之前&#xff0c;在其位于德国…

【OD2023C卷真题】20天拿下华为OD笔试之【排序】2023C-身高提供排序【欧弟算法】全网注释最详细分类最全的华为OD真题题解

文章目录 题目描述与示例题目描述输入描述输出描述示例一输入输出 示例二输入输出 解题思路代码时空复杂度 进阶华为OD算法/大厂面试高频题算法练习冲刺训练 题目描述与示例 题目描述 某学校举行运动会,学生们按编号(1、2、3.....n) 进行标识, 现需要按照身高由低到高排列&a…

Redis基础系列-主从复制

Redis基础系列-主从复制 文章目录 Redis基础系列-主从复制1. 什么是 Redis 主从复制&#xff1f;2. 主从复制有什么好处&#xff1f;3. 如何配置 Redis 主从复制&#xff1f;4. 主从复制的验证4.1 如何查看主从搭建成功4.2 主从常见疑问4.3 主从常见命令 5. 主从复制的原理和工…

掌握1688官方API接口:开启智能商务合作新篇章

当涉及到与1688官方合作的API接口时&#xff0c;以下是一些建议和指导&#xff0c;以帮助您开始编写相关的代码。 了解API接口文档&#xff1a; 在编写与1688官方合作的API接口之前&#xff0c;首先需要了解1688官方提供的API接口文档。您可以在1688开放平台上找到相关的文档…

12.11 作业

1&#xff0c; 完善对话框&#xff0c;点击登录对话框&#xff0c;如果账号和密码匹配&#xff0c;则弹出信息对话框&#xff0c;给出提示”登录成功“&#xff0c;提供一个Ok按钮&#xff0c;用户点击Ok后&#xff0c;关闭登录界面&#xff0c;跳转到其他界面 如果账号和密码…

王道数据结构课后代码题p150 第13——17 (c语言代码实现)

目录 13.p 和 q 分别为指向该二叉树中任意两个结点的指针&#xff0c;试编写算法 ANCESTOR(ROOT,P,q,r)&#xff0c;找到P和q的最近公共祖先结点 r 14.假设二叉树采用二叉链表存储结构&#xff0c;设计一个算法&#xff0c;求非空二叉树 b的宽度(即具有结点数最多的那一层的结点…

Draw.io绘图操作

使用步骤 以下是使用 draw.io&#xff08;现在的 diagrams.net&#xff09;的一些基本操作步骤&#xff1a; 访问网站&#xff1a; 打开浏览器&#xff0c;访问 https://app.diagrams.net/。 创建新文档&#xff1a; 在 diagrams.net 主页&#xff0c;点击 “New Diagram” 或…

2023最新vue安装(npm,yarn,国内镜像,vue安装,vue导包)全套教程2023年12月最新

第一步(安装npm) 官网地址&#xff1a;https://nodejs.org/en/download windows安装yarn 详细教程_windows yarn-CSDN博客 第二步&#xff08;yarn下载&#xff09; windows 下需要下载msi文件 &#xff0c;下载地址&#xff1a;https://yarnpkg.com/latest.msi npm install -g…

力扣198. 打家劫舍

动态规划 思路&#xff1a; 寻找状态转移方程&#xff1a; 假设有 n 个房间&#xff1b; 如果偷第 n 个房间&#xff0c;那么第 n - 1 个房间不偷&#xff0c;之前的 n - 2 个房间偷窃到了 M(n - 2)&#xff0c;总共可以偷窃到 M(n - 2) N(n)&#xff1b;如果不偷第 n 个房间…

第11节: Vue3 动态参数

在UniApp中使用Vue3框架使用动态参数&#xff1a; <template> <view> <text>{{ dynamicText }}</text> <button click"changeText">点击改变文本</button> </view> </template> <script> export de…

SD-WAN解决企业国际互联组网需求

随着云计算、移动应用和企业全球化的浪潮&#xff0c;实时应用在不同地点之间的传输需求不断增加&#xff0c;涵盖异地办公、视频会议、远程桌面、支付交易系统以及远程医疗等。这些应用的顺畅传输对于企业至关重要&#xff0c;而SD-WAN&#xff08;软件定义广域网&#xff09;…

Spring MVC详解、静态资源访问、拦截器

1. Spring MVC概述 1.1 Spring MVC是什么 SpringMVC是Spring的一个模块&#xff0c;是一个基于MVC设计模式的web框架。 1.2 Spring MVC执行流程。 1.3 组件分析 前端控制器&#xff08;默认配置&#xff09;Dispatcher Servlet 作用&#xff1a;只负责分发请求。可以很好的对…

这样的软件测试面试题,谁面试遇到谁淘汰!!!

88 11.6 自动化测试用例的来源 手工编写测试用例 把原来手工的测试用例&#xff0c;当成自动化测试用例 11.7 自动化测试的优点与缺点 优点: 1、对程序的回归测试更方便 2、可以运行更多更繁琐的测试 3、提高测试效率和准确性&#xff0c;节约时间成本 4、可以执行一些手工测试…

【源码解析】从ReentrantLock角度聊聊AQS原理

AQS结构 //头节点 当前持有锁的线程private transient volatile Node head;/*** Tail of the wait queue, lazily initialized. Modified only via* method enq to add new wait node.*///每个进来的线程都插入到最后private transient volatile Node tail;/*** The synchroni…

MLIR笔记(6)

5. 方言与操作 5.1. 方言的概念 在MLIR里&#xff0c;通过Dialect类来抽象方言。具体的每种方言都需要从这个基类派生一个类型&#xff0c;并实现重载自己所需的虚函数。 MLIR文档里这样描述方言&#xff08; MLIR Language Reference - MLIR&#xff09;&#xff1a; 方言…

手把手教你玩转ESP8266(原理+驱动)

在嵌入式开发中&#xff0c;无线通信的方式有很多&#xff0c;其中 WIFI 是绕不开的话题。说到 WIFI 通信&#xff0c;就不得不提 ESP8266了。 ESP8266 是一款高性能的 WIFI 串口模块&#xff0c;实现透明传输。只要有一定的串口知识&#xff0c;不需要知道 WIFI 原理就可以上…

作为一个产品经理带你了解Axure的安装和基本使用

1.Axure的简介 Axure是一种强大的原型设计工具&#xff0c;它允许用户创建交互式的、高保真度的原型&#xff0c;以及进行用户体验设计和界面设计。Axure可以帮助设计师和产品经理快速创建和共享原型&#xff0c;以便团队成员之间进行沟通和反馈。Axure提供了丰富的交互组件和功…

Spring--10--Spring Bean的生命周期

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 1.Spring Bean1.1 什么是 Bean简而言之&#xff0c;bean 是由 Spring IoC 容器实例化、组装和管理的对象。 1.2 Spring框架管理Bean对象的优势 2.Bean的生命周期实例…