我正在使用STL,但我沒有C++ 0x和我不能使用boost,我不知道是否有反正綁定2個或更多的參數使用仿函數的std ::產生?類似於stl仿函數超過2個參數
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>
using namespace std;
float f(int x, float y, float z) {return x*(y+z);}
int main(void)
{
std:vector<int> v(100);
float x=1.2, y=-3.3;
generate(v.begin(), v.end(), bind3argu(f, _, x, y)); // something like this: '_' is from vector
// as suggested, I also try
generate(v.begin(), v.end(), std::bind(f, x, y));
return 0;
}
我嘗試使用std :: bind,但它不能用g ++ 4.4.6編譯。順便說一句,std :: bind只支持C++ 0x和/或C++ 11嗎?
'main'需要有'int'返回類型。 – chris
這是什麼'_'部分來自矢量?這是矢量元素可能包含的初始值嗎? – Mahesh
嗨Mahesh,我發佈的代碼並不存在,我只是想展示我想要實現的想法。 _代表矢量的元素。 – user1285419