В настоящее время я пытаюсь реализовать генератор случайных чисел (класс), который использует метод отклонения принятия. Поэтому мне нужны разные распределения случайных чисел С++ 11 (в моем случае нормальное распределение и равномерное распределение). Я хочу сделать случайные числа как можно лучше и, следовательно, хотел использовать следующее для создания функций:
[...]
#include <random>
#include <vector>
[...]
std::vector<int> seeds(16);
std::mt19937 mt;
std::minstd_rand seed_rng(101); // random seed
for(size_t i=0;i<16;++i) seeds[i]=seed_rng();
std::seed_seq seq(seeds.begin(), seeds.end());
mt.seed(seq);
rng_normal = std::bind(ndist, std::ref(mt));
[...]
Это работает отлично. Но когда я пытаюсь поместить все это сейчас в конструктор, я больше не могу использовать инициализацию последовательности семян. Я проверил ссылку на C++, но наткнулся только на std::seed_seq::generate, что не является правильным решением.
Есть ли способ построить seed_seq в моем списке инициализации после заполнения вектора? Ссылку на seed_seq см. здесь:
http://en.cppreference.com/w/cpp/numeric/random/seed_seq
Спасибо за любые предложения!