這裏是我的課是如何定義的總體思路(它執行其他操作比什麼是下面提到)的std ::在成員函數的for_each使用與有兩個參數
struct Funktor
{
Funktor(int val):m_val(val){}
bool operator()(int arg1, int arg2) { return m_val==arg1*arg2; }
int m_val;
};
現在我有一個向量上面的對象,我試圖調用operator()使用for_each,有沒有辦法做到這一點?我知道這可以使用bind2nd和mem_func_ref來完成,但是當只有一個參數但是有兩個參數時,我沒有找到方法。
int main()
{
std::vector<Funktor> funktors;
funktors.push_back(Funktor(10));
funktors.push_back(Funktor(20));
funktors.push_back(Funktor(30));
int arg1 = 5, arg2 = 6;
//instead of the for loop below I want to use for_each
for(std::vector<Funktor>::iterator itr = funktors.begin(); funktors.end() != itr; ++itr)
{
(*itr)(arg1,arg2);
}
}
感謝您的任何幫助。最好。
CV
你能澄清你爲什麼要這樣做嗎?它看起來像一個沒有操作。 –
@Mark:你的意思是operator()不做任何事情嗎?這只是爲了瞭解我班的結構。 – blueskin
@blueskin:他的意思是'std :: for_each'放棄了它給出的仿函數的結果,所以返回的'bool'永遠不會被使用,這使得這個特定的樣本毫無意義。 – ildjarn