visual-studio - Visual Studio 2012 完全支持 <random>

标签 visual-studio visual-studio-2012 random

我有这个示例代码,它抛出一个错误:

std::random_device rd;     // only used once to initialise engine
std::mt19937 rng(rd);      // random-number engine used
std::uniform_int_distribution<int> uni(0, 7); // guaranteed unbiased

int random_integer = uni(rng);

错误是:

Error 1 error C2039: 'generate' : is not a member of 'std::random_device' c:\program files (x86)\microsoft visual studio 12.0\vc\include\random 1618 1 Life

有人可以解释一下为什么会发生这种情况吗?这似乎是头文件中的错误,而不是我的代码中的错误。

如何修复它?

谢谢。

最佳答案

std::mt19937 有两个构造函数,一个采用单个 32 位无符号值作为参数(默认值 5489u),另一个采用种子序列(模板类型)作为参数。后者需要有一个名为generate 的方法。 由于 random_device 没有这样的方法,因此您的代码无效。 您可能想做的是

std::mt19937 rng(rd());

即从设备中提取一个值并将其用作参数。

关于visual-studio - Visual Studio 2012 完全支持 <random>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28706050/

相关文章:

javascript - 影响 Math.random()

c++ - C++,关闭后如何使控制台应用程序在后台运行?

c# - Windows Phone 8.1 相机初始化

c++ - 我有 sqlite3 的问题

html - Visual Studio 2012 不会收回 HTML 自动格式设置 (Ctrl+K+D) 上的缩进

一天后种子发生变化的 Java 随机数

java - 想知道为什么要这样计算中位数?

c# - 如何使用单个图像统一创建二维 map ?

git 和 Visual Studio

c++:按值复制到函数参数在vs2012中产生两个对象