返回信息流#include <algorithm>
#include <functional>
#include <iostream>
#include <iterator>
using namespace std;
class MyAdd : public binary_function<int,int,int>
{
public:
MyAdd(){}
int operator()(int m,int n)
{
return m+n;
}
};
int main()
{
ostream_iterator<int> out(cout, "\n") ;
int a[]={1,3,47,5,84,9};
int size=sizeof(a)/sizeof(a[0]);
transform(a,a+size,a,bind2nd(MyAdd(),100));
copy(a,a+size,out);
}
这是一条镜像帖。来源:北邮人论坛 / cpp / #36221同步于 2010/3/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
帮忙看下这个程序错在什么地方?谢谢啦
kmplayer
2010/3/2镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复
这样改一下:
int operator()(const int& m,const int& n) const
{
return m+n;
}
可以看一下bind2nd的代码,它里面的operator()要求参数为const引用,并且为常成员函数。
【 在 kmplayer 的大作中提到: 】
: #include <algorithm>
: #include <functional>
: #include <iostream>
: ...................
多谢,自己看得太不仔细了,把const遗漏了.
改成这样int operator()(int m,int n) const就可以了.
【 在 wangzb 的大作中提到: 】
: 这样改一下:
: int operator()(const int& m,const int& n) const
: {
: ...................