zoukankan      html  css  js  c++  java
  • c++杂技(一):c++中的仿函数,把对象当成函数用

    c++中,有操作符 operator() ,可以在对象后加上操作符 () ,使程序看起来像是函数执行。

    #include<iostream>
    using namespace std;
    template<typename T>
    class print
    {
    public:
        void operator() (const T& elem)
        {
            cout << elem << " ";
        }
    };

    可以先声明一个print的对象,再调用操作符 () ,如下

    print<int> p;
    p(234);
    

    如果p以后不再被使用,可以直接声明一个临时对象,然后调用操作符 ()

    print<int>()(234);

    通常的使用方法如下

    int ia[6]={0,12,2,3,54,5};
    
    vector<int> iv (ia, ia + 6);
    
    for_each(iv.begin(), iv.end(), print<int>());//调用stl算法
    
    print<int>()(123);

    注意print<int>() 只是声明了一个临时对象。

  • 相关阅读:
    Django(一)
    web 框架
    图片
    day16
    day 15
    day14 HTML CSS
    day12
    day11
    python IO多路复用,初识多线程
    python socket
  • 原文地址:https://www.cnblogs.com/mindulmindul/p/12228749.html
Copyright © 2011-2022 走看看