Использование std :: tr1 :: normal_distribution в Qt - PullRequest
0 голосов
/ 11 марта 2012

Я хотел бы сгенерировать числа с помощью normal_distribution в c ++ 11. Использование Qt 4.8 MinGW. Я добавил следующую строку

QMAKE_CXXFLAGS + = -std = c ++ 0x

в мой файл .pro а затем получите следующие ошибки: 'swprintf ::' не был объявлен vswprintf :: не был объявлен

1 Ответ

2 голосов
/ 11 марта 2012

TR1 действительно следует избегать при использовании C ++ 11, так как он был разработан с учетом ограничений предыдущего стандарта.(также все, что было сочтено полезным, продолжало и стало интегрированным в стандарт.)

К счастью, в 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 в любом случае не очень хороша.(отсутствует префикс include или отсутствует префикс пространства имен).

...