编译时间随机发生器

时间:2019-04-07 21:33:29

标签: c++ random mingw cross-platform

我想使用random库在C ++中编写一个运行时随机数生成器类。

#include <iostream>
#include <random>

class RandomGen {
    private:
        std::random_device _rd;
        std::mt19937 _rng;
        std::uniform_int_distribution<int> _uni_dist;
    public:
        RandomGen(int min, int max) : _rd(), _rng(_rd()), _uni_dist(min, max) {}
        int spit() { return _uni_dist(_rng);}
};

int main() {
    RandomGen rgen(0x00, 0xff);

    for (unsigned i=0; i<10; ++i) {
        std::cout << rgen.spit() << std::endl;
    }

    getchar();
    return 0;
}

我正在针对Win32机器在linux-ubuntu VM中交叉编译它。

这是编译命令:i686-w64-mingw32-g++ -Wall -Werror -std=c++17 -m32 -s -static-libstdc++ -static-libgcc test.cpp -o test.exe

问题在于,每次执行程序时,生成器都会生成相同的数字序列,就像在编译时已经预先确定了数字一样。

如何使其每次执行时生成不同的数字?

0 个答案:

没有答案