我正在使用 STL,但我没有 c++0x,也无法使用 boost,我想知道在使用 std::generate 时是否有任何方式将 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 编译。顺便说一句,仅在 c++0x 和/或 c++11 中支持 std::bind 吗?