0

我正在使用 QtCreator 2.4.1、QtSdk 4.8.1 和 MinGw 4.7.2

我正在尝试使用 (c++11) 随机库,但到目前为止我一直没有成功。采取以下示例代码:

#include <random>
...
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(1,6);
int dice_roll = distribution(generator);  // generates number in the range 1..6

编译器抱怨:

错误:“default_random_engine”不是“std”的成员

错误:“uniform_int_distribution”不是“std”的成员

我的 .pro 文件中有 -std=c++0x 标志。所有其他 STL 功能似乎都可以正常工作,所以我很困惑!如果有人能帮我解决这个问题,我将不胜感激。

4

2 回答 2

1

好吧,愚蠢的问题,但可能会发生在其他人身上,所以我们开始:

出于某种原因,我的代码是用 MinGW 4.4 编译的,这是我的 Qt Creator 默认附带的版本。要将其带回我已经安装在计算机中的 MinGw 4.7.2,我单击了 QCreator 屏幕左侧的“项目”选项卡,然后选择了正确的工具链。

感谢 Joachim Pileborg 为我指明了正确的方向。

于 2013-02-15T08:34:18.813 回答
1

我遇到了同样的问题,无法更改编译器。

我用 qrand() 替换了 std::rand()

http://qt-project.org/doc/qt-4.8/qtglobal.html#qrand

于 2014-08-08T20:30:59.847 回答