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

mt19937 myRandomGenerator(1);
normal_distribution<double> myDistribution(0.0, 1.0);

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

最佳答案

就像描述的一样,使用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);
}

关于c++ - 在C++ 11中保存随机数生成器状态,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18361050/

10-09 00:37