3
親愛的一切調用帶部件的數據的成員函數,我想調用一個成員函數(即期望的基準)爲(比方說)一個矢量,即同一類的成員的每個對象,如下面的代碼所示:使用的for_each
#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中的引用是一個問題。我知道我錯過了一些重要的東西,所以我藉此機會解決我的問題並學習。目前,我無法安裝增強功能,但我想知道增強功能是否有助於解決此問題。提前致謝。
感謝。非常清楚。 – iluvatar 2010-11-17 23:03:39
只是想補充一點,你也可以使用C++ 11的'的std :: bind'(等同於Boost.Bind):'的std :: for_each的(things.begin(),things.end(),STD: :bind(&Test :: f1,this,std :: placeholders :: _ 1));' – congusbongus 2013-03-20 04:05:39