C++謂詞函數(無師自通)

2020-07-16 10:04:41
謂詞函數是一個返回布林值的函數。

一元謂詞函數就是只釆用一個實參的函數。使用一元謂詞函數可以確定一個給定物件是否具有某些特徵。

例如,可以使用以下類建立函數物件,該函數物件就是一元謂詞函數,它可以判斷一個整數是奇數還是偶數:
class IsEven
{
    public:
        bool operator()(int x)
        {
            return x % 2 == 0;
        }
}
以下程式碼顯示了如何使用通過該類建立的一個謂詞函數物件:
int number;
cout << " Enter an integer:";
cin << number;
if (IsEven()(number))
{
    cout << " Even ";
}
else
{
    cout << " Odd ";
}
二元謂詞函數就是釆用兩個形參的謂詞函數。使用二元謂詞函數可以確定兩個物件是否以某種方式相關聯。

例如,可以使用以下類建立一個謂詞函數,以確定一個整數是否比另外一個整數小:
class LessThan
{
    public:
        bool operator()(int a, int b)
        {
            return a < b;
        }
}
表示式 LessThan() 是一個函數物件,而 LessThan()(x,y) 則代表了使用實參 x 和 y 呼叫函數物件的結果。