【发布时间】:2011-05-11 15:34:19
【问题描述】:
亲爱的,我想为(比方说)同一个类的成员的向量的每个对象调用一个成员函数(需要一个引用),如以下代码所示:
#include <functional>
#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
struct Stuff {
double x;
};
class Test {
public:
void f1(Stuff & thing);
void f2(void);
vector<Stuff> things;
};
void Test::f1(Stuff & thing) {
; // do nothing
}
void Test::f2(void) {
for_each(things.begin(), things.end(), f1);
}
int main(void)
{
return 0;
}
这段代码给了我一个与未解决的重载函数类型相关的编译器错误。我也尝试过绑定,但似乎 f1 中所需的引用是一个问题。我知道我在这里遗漏了一些重要的东西,所以我借此机会解决我的问题并学习。目前,我无法安装 boost,但我也想知道 boost 是否有助于解决这个问题。提前致谢。
【问题讨论】:
标签: c++ foreach reference pass-by-reference