仿函式,簡單來說,使用乙個類來實現乙個函式,通過運算子過載,使得這個類有函式的對應功能。
舉個簡單仿函式實現的例子:
#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派生出來的派生類。而這兩種有什麼區別呢?它們之間的區別只是第一種接收的引數個數為乙個,而第二種接收的引數的個數為兩個...