第二十四章 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.pswp.cn/news/214754.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214754.shtml
英文地址,請注明出處:http://en.pswp.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的生命周期實例…