⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 编程技巧 函数对象模板.txt

📁 C&C++论坛精华
💻 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 + -