码迷,mamicode.com
首页 > 编程语言 > 详细

c++杂技(一):c++中的仿函数,把对象当成函数用

时间:2020-01-22 16:40:46      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:span   程序   out   tor   for_each   调用   str   直接   color   

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>() 只是声明了一个临时对象。

c++杂技(一):c++中的仿函数,把对象当成函数用

标签:span   程序   out   tor   for_each   调用   str   直接   color   

原文地址:https://www.cnblogs.com/mindulmindul/p/12228749.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!