在Qt中使用std :: tr1 :: normal_distribution

时间:2012-03-10 23:17:52

标签: c++ qt random c++11 mingw

我想在c ++ 11中使用normal_distribution生成数字。使用Qt 4.8 MinGW。我添加了下一行

  

QMAKE_CXXFLAGS + = -std = c ++ 0x

到我的.pro文件 然后得到下一个错误: 'swprintf ::'尚未宣布 'vswprintf ::'尚未声明

1 个答案:

答案 0 :(得分:2)

在使用C ++ 11时,确实应该避免使用TR1,因为它的设计符合以前标准的限制。 (此外,所有被认为有用的东西都会被整合到标准中。)

幸运的是,C ++ 11中有一个具有正态分布的综合随机数生成库。

见这里:

http://en.cppreference.com/w/cpp/numeric/random

#include <random>
:::
std::random_device rd;
std::normal_distribution<double> dist(0,99);
std::mt19937 engine(rd());
double a=dist(engine);

你看到的确切错误,好像TR1的特定实现无论如何都不是很好。 (缺少包含或缺少名称空间前缀)。