正在初始化静态default_random_engine
Initializing static default_random_engine
我有一个简单的类,它对我使用default_random_engine
生成随机数很有用。
随机.h:
#include <random>
using namespace std;
class Random
{
public:
Random();
~Random() {}
private:
static default_random_engine _engine;
};
Random.cpp:
#include "Random.h"
Random::Random()
{
_engine = default_random_engine{}; //Will this be initialized every time I create an object of type Random?
}
每次创建Random
类型的对象时,是否会初始化_engine
?我只希望它在第一次初始化后保持原样,因为我被告知可以多次使用同一个引擎。
每次创建Random类型的对象时,是否会初始化_engine?
是的。
我只希望它在第一次初始化后保持原样
在这种情况下,您应该这样定义它:
#include "Random.h"
std::default_random_engine Random::_engine;
如果没有这一点,即使您的原始版本也不会编译(因为您还没有定义静态成员)。
在我的问题中提供的链接@NathanOliver帮助我理解了这一点,即在源文件中创建一个该类型的全局变量:
#include "random.h"
default_random_engine Question::_engine = default_random_engine{};
Random::Random() { }
相关文章:
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 是否可以为boost::random::uniform_int_distribution<>设置确定性种子?
- 'generate'不是窗口头文件中'std::random_device'的成员<random>
- 数组打印"random"值时出现问题
- 使用""的不可重现的随机数<random>
- <random> 尽管不是常量,但所有发行版都是线程安全的吗?
- 从时间生成'random'数字?
- 无法在 c++ 中包含"random"头文件
- Google App Engine 会在实例休眠后缓存编译的 go 代码吗?
- 如何使用 "Matlab Data / Engine API for c++" 在 c++ 中加载 .mat
- Nemiver 找不到文件 /build/glibc-LK5gWL/glibc-2.23/stdlib/random.c
- 如何在 c++ 中正确读取 GRC 块"Random Source"的字节输出数据到自己的 OOT 块中?
- 如何使用 C++ 和 Matlab Engine under Kdevelopwith CMakeList.
- 如何从C++<random>获得一致的行为
- 为什么 random() 在窗口中不起作用
- 等效于C++中的numpy.random.choice函数
- Arduino 的新手。 "Random"值在复位时重复
- 在 c++ 中反转数组时,为什么在输入和输出之间得到一个"random"数字?
- 如何使用<random>填充标准::数组
- 如何在Unreal Engine 4移动游戏开发C 中接受接触式拖盘活动