C 仿函式詳解

2021-09-30 14:17:20 字數 1524 閱讀 3397

仿函式,簡單來說,使用乙個類來實現乙個函式,通過運算子過載,使得這個類有函式的對應功能。

舉個簡單仿函式實現的例子:

#include 

#include

using

namespace

std;

template

class testfunctor_dis

};int main()

; for_each(lst, lst + 6, testfunctor_dis());

}

在stl有著眾多的仿函式實現,主要有以下幾類:

預定義仿函式:

算數類

仿函式效果negate()取負

- param

plus()

param1 + param2

minus()

param1 - param2

multiplies()

param1 * param2

divide()除法

param1 / param2

modulus()模運算

param1 % param2

關係運算類

仿函式效果equal_to()判斷相等

param1 == param2

not_equal_to()判斷不相等

param1 != param2

less()判斷小於

param1 < param2

greater()判斷大於

param1 > param2

less_equal()判斷小於等於

param1 <= param2

greater_equal()判斷大於等於

param1 >= param2

邏輯運算類

仿函式效果logical_not()邏輯非

!param

logical_and()邏輯與

param1 && param2

logical_or()邏輯或

param1 || param2

C 仿函式 functor 詳解

所謂的仿函式 functor 是通過過載 運算子模擬函式形為的類。因此,這裡需要明確兩點 1 仿函式不是函式,它是個類 2 仿函式過載了 運算子,使得它的對你可以像函式那樣子呼叫 的形式好像是在呼叫 函式 看下面的例項 include using namespace std const int cm...

python 仿函式 C 仿函式

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

仿函式 C 中仿函式的應用

仿函式 c 中仿函式的應用 在使用仿函式的時候,主要用到以下兩種 一種是以基類std unary function派生出來的派生類 另一種是以基類std binary function派生出來的派生類。而這兩種有什麼區別呢?它們之間的區別只是第一種接收的引數個數為乙個,而第二種接收的引數的個數為兩個...