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