6
嗨 我试图做到以下几点:generate_n与构造函数需要两个参数
struct A {
A(int i, int j){}
}
int startValue = 10;
vector<A> v;
generate_n(back_inserter(v), 10, ???;
我怎样才能“实现”两个参数在startValue和函子兰特?
谢谢
嗨 我试图做到以下几点:generate_n与构造函数需要两个参数
struct A {
A(int i, int j){}
}
int startValue = 10;
vector<A> v;
generate_n(back_inserter(v), 10, ???;
我怎样才能“实现”两个参数在startValue和函子兰特?
谢谢
由于发电机是一个函数对象,你可以实例化生成器和它的构造函数提供的参数:
class MyGenerator
{
private:
int startValue;
public:
MyGenerator(int startValue): startValue(startValue) {}
// generate an instance of A
A operator()()
{
return A(startValue, rand()); // or whatever you were planning to do here...
}
};
...
//down in your code (added Fred's sugestion)
generate_n(back_inserter(v), 10, MyGenerator(startValue));
然后每次生成你可以使用在startValue和RAND计算时间接下来用来构造A对象的参数。
啊... shikes,打我的时刻...我会删除我的... – Nim 2011-01-27 16:57:03