STL 仿函式(函式物件)

2021-09-22 14:12:37 字數 835 閱讀 1334

定義:

一種具有函式特徵的物件,呼叫者可以像函式一樣使用該物件,為了能夠「行為類似函式」,該物件所在類必須自定義函式呼叫運算子operator(),就可以在仿函式物件後面加上一對小括號,以此呼叫仿函式定義的operator()操作。

class

mul2};

class

mul3};

intmain()

;for_each

(v.begin()

, v.

end(),

mul2()

);//一般情況下使用的時候都是把first作為容器遍歷的起始點指標,last是容器的末尾。重點是functor(仿函式)。

for(

auto e : v)

cout << endl;

auto pos =

remove_if

(v.begin()

, v.

end(),

mul3()

);v.erase

(pos, v.

end())

;//對於相對功能簡單的操作,可以用c++11提供的lambda表示來替代

//lambda表示式實現簡單,其在底層和仿函式相同,編譯器會將lambda轉換為仿函式

for_each

(v.begin()

, v.

end(),

(int date));

cout << endl;

system

("pause");

}

stl 仿函式 函式物件

定義 stl原始碼剖析 仿函式其實上就是乙個 行為類似函式 的物件。即主體是物件,只是使用起來像乙個函式。傳遞函式指標 templatebool compare to const t x,const t y templatevoid print compare t fun int main 傳遞的是...

STL 函式物件(仿函式)概述

在stl提供的各種演算法中往往提供兩個版本,而第二個版本中往往第三個引數,就是乙個函式物件,第乙個版本中預設採用operator 來排序。函式物件可以看成是一種 操作 排序時兩兩相鄰元素滿足使這種操作為真,當然我們可以設計乙個函式,然後傳遞函式指標,但是我們需要抽象介面,函式指標不能與介面卡搭配使用...

STL (10)函式物件(仿函式)

2 謂詞 3 內建函式物件 概念 本質 函式物件 仿函式 是乙個類,不是乙個函式 特點 示例 include 1 函式物件在使用時,可以像普通函式那樣呼叫,可以有引數,可以有返回值 class myadd void test01 2 函式物件可以有自己的狀態 class myprint void o...