我希望能够在.txt文件中保存随机数生成器的状态并将其读回。我听说使用c ++ 11,可以使用<<和>>运营商。但是,我不确定我会怎么做到这一点。我有一个随机数生成器初始化如下:
mt19937 myRandomGenerator(1);
normal_distribution<double> myDistribution(0.0, 1.0);
我希望能够将myRandomGenerator的状态保存在save.txt文件中。我该怎么办?
答案 0 :(得分: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);
}