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

6

我希望能够将一个随机数生成器的状态保存到.txt文件中,并在需要时读取它。我听说使用C++11的<<和>>运算符可以实现这一点。然而,我不确定应该如何实现。我有一个按以下方式初始化的随机数生成器:

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

我希望能将myRandomGenerator的状态保存在文件save.txt中。我该如何做到这一点?

1个回答

10

按照描述的方式编写,使用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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接