C 之仿函式

2021-07-13 04:38:05 字數 1033 閱讀 7971

一、仿函式

仿函式說白了就是類中過載「()」函式運算子,就可以把類物件當成乙個函式來使用:先舉個例子:

class pow

};int main()

結果如下圖:

可以看到類中過載了」()」,就可以pow類的物件當成函式一樣來使用。

一、仿函式的應用

仿函式主要應用於stl和模板,這裡舉個stl的例子:

class cmp

};int main();

sort(begin(v), end(v), cmp());

for(int i = 0; i < v.size(); i++)

return

0;}

結果如下:

顯然這裡把類物件當做函式來處理的。

二、lambda表示式

根據上面那個例子,這裡簡單介紹一下高逼格的lamdba表示式:

int main();

sort(begin(v), end(v), (int a, int b)); //比較函式用lambda表示式

for(int i = 0; i < v.size(); i++)

()();

return

0;}

輸出結果如下:

發現函式裡面可以巢狀函式了,相當高大上啊。在表示式的最後加個」()」直接可以執行了有木有,如果不加」()」那就相當於乙個函式放在那,並沒有執行。

總而言之, 這是c++11中新增的很高大上的乙個玩意,好好利用,裝x還是不錯滴!

python 仿函式 C 仿函式

c 的標準庫stl裡面有6大部件,其中之一為仿函式。初始看到這一名字可能讓人摸不著頭腦 函式倒是挺容易理解,何故又起個仿函式的名字呢?本文將帶你揭開它看起來挺讓人迷惑但是實際上很簡單的面紗。仿函式,看名字就知道它肯定和函式有什麼關聯,但是也肯定和函式有什麼區別。函式主要是一塊接收輸入引數然後按照一定...

Monads之仿函式

def map a,b oa option a f a b option a 仿函式就是實現了map的資料型別,其簽名如上,即接受乙個函式將乙個型別構造器裡的型別轉化成另一種型別,我們可以根據這個規則,把 規則 抽取成乙個trait,如下 trait functor f 我們實現乙個list型別的f...

STL之仿函式

這裡介紹仿函式,謂詞,內建函式物件,介面卡的用法 仿函式 又稱函式物件,實際上是過載操作符 其中不定義構造和析構函式 只有乙個引數是一元仿函式,兩個就是二元 eg class func intmain 優點 函式物件超越了普通函式的概念,可以在內部儲存其狀態 比如呼叫次數 函式物件可以作為引數呼叫 ...