?? 編程技巧 函數對象模板.txt
字號:
作者:rick1126
email: rickzhang@sina.com.cn
日期:2001-4-15 9:48:59
FUNCTION OBJECT BASES
要將書寫函數對象的進程簡單化, 標準庫提供兩個類模板作為這樣的對象的基類: std::unary_function 和 std::binary_function. 它們都在頭文件 < functional > 中聲明. 根據其命名, unary_function 提供接收一個參數的基函數而 binary_function 提供一個接收兩個參數的基函數.
template < class Arg, class Res > struct
unary_function
{
typedef Arg argument_type;
typedef Res result_type;
};
template < class Arg, class Arg2, class Res >
struct binary_function
{
typedef Arg first_argument_type;
typedef Arg2 second_argument_type;
typedef Res result_type;
};
這些模板不提供任何有用的函數體, 它們只是確保參數和返回類型具有統一的命名. 在下面的例子里面, 謂詞 is_vowel 表示一個參數, 繼承自 unary_function:
template < class T >
class is_vowel: public unary_function< T, bool >
{
public:
bool operator ()(T t) const
{
if ((t=='a')||(t=='e')||(t=='i')||(t=='o')||(t=='u'))
return true;
return false;
}
};
-----------
Danny Kalev
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -