Я новичок в C ++ и пытаюсь изучить возможности C ++ 11. Здесь я пытаюсь познакомиться с новыми двигателями, генерирующими случайность.
Я обобщил следующий код из учебника по этой теме и заметил две вещи:
1- uniform_real_distribution
не включает максимальное значение.
2- Закомментированная строка выдает ошибку, хотя, кажется, она отлично работает в учебнике.
#include <iostream>
#include <random>
#include <chrono>
#include <string>
using namespace std;
int main(){
unsigned seed = 201;
//seed = chrono::steady_clock()::now().time_since_epoch().count();
default_random_engine e(seed);
uniform_real_distribution<double> u(0,9);
vector<double> v(10);
int num;
for(int i = 0; i < 400; ++i){
num = u(e);
++v[num];
}
for (int i = 0; i < 10; ++i)
cout << i << ": " << string(v[i],'*') << "\n";
}
Я безуспешно пытался найти причины этих двух вещей.
Итак, мои вопросы:
1- Как включить максимальное значение?
2- Почему я получаю сообщение об ошибке, когда раскомментирую строку chrono
?
cannot convert 'std::chrono::_V2::steady_clock' to 'unsigned int' in initialization
Примечание: я использую MinGW64 g ++ с c ++ 14.