仿函数小例子

来源:互联网 发布:花都金蝶软件代理商 编辑:程序博客网 时间:2024/05/17 23:59

通过侯捷老师的视频学习了一些仿函数的使用,我只学了使用,其中主要模拟了pair的count和key的输出。并没有深入学习具体过程,在此贴上一位大佬的帖子链接(http://m.blog.csdn.net/yangquanhui1991/article/details/51721519)

#include<string>#include<map>#include<functional>template <class Pair>class select1st :public unary_function<Pair,typename Pair::first_type>{public:    const typename Pair::first_type&        operator()(const Pair&x) const{        return x.first;    }};template<class Pair>struct select2ed :public unary_function<Pair, typename Pair::second_type> {    const typename Pair::second_type&        operator()(const Pair&x)const {        return x.second;    }};template<class T>class Equal_to :public binary_function<T, T, bool> {public:    bool operator()(const T&x, const T&y)const { return x == y; }};int main(void) {    Equal_to<int>Equal;    cout << Equal(1, 1) << endl;    pair<string, int>p("string",1);    cout << select1st<pair<string, int>>()(p);    cout << select2ed<pair<string, int>>()(p);    system("pause");    return 0;}
原创粉丝点击