使用回调初始化向量

Ale*_*heo 1 c++ stl c++11

让我们说我有一节课:

MyType callback(){
 /// randomize here
 .....
 .....
 return randomValue;
}

class MyClass{
private:
  std::vector< MyType > m_vector;

public:
  MyClass( unsigned int size ):m_vector(size, callbackHere? );
};
Run Code Online (Sandbox Code Playgroud)

我需要使用我生成的值初始化向量,我该怎么做?一个解决方案是为MyType创建一个空构造函数,这就是我所拥有的,但是现在我想用对替换MyType,因此空构造函数不起作用.

我的回调将返回随机值,所以最后我希望有一个带有一些随机值的向量.

谢谢

Fre*_*abe 5

你可以编写一个类似自定义迭代器的类型

  • ++调用pre// postfix时生成新值
  • 通过取消引用时生成生成的值 operator*
  • end在完成生成值时,等于某个sentry对象(迭代器)