在C++ 11中保存随机数生成器状态

cov*_*bob 5 c++ random file-io c++11

我希望能够将随机数生成器的状态保存在.txt文件中并将其读回.我听说使用c ++ 11,可以使用<<和>>运算符来完成.但是,我不确定我会怎么做到这一点.我有一个随机数生成器初始化如下:

mt19937 myRandomGenerator(1);
normal_distribution<double> myDistribution(0.0, 1.0);
Run Code Online (Sandbox Code Playgroud)

我希望能够将myRandomGenerator的状态保存在save.txt文件中.我该怎么办?

bam*_*s53 9

正如所描述的那样,使用它来写它operator<<并在使用中读回状态operator>>.

#include <fstream>
#include <random>
#include <cassert>

int main() {
  std::mt19937 myRandomGenerator(1);

  {
    std::ofstream fout("save.txt");
    fout << myRandomGenerator;
  }

  std::ifstream fin("save.txt");
  std::mt19937 myRandomGeneratorCopy;
  fin >> myRandomGeneratorCopy;
  assert(myRandomGenerator == myRandomGeneratorCopy);
}
Run Code Online (Sandbox Code Playgroud)