5

乱数ジェネレーターの状態を .txt ファイルに保存して、読み戻せるようにしたいと考えています。C++11 では、これは << および >> 演算子を使用して実行できると聞きました。ただし、これをどのように正確に行うかはわかりません。次のように初期化された乱数ジェネレーターがあります。

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

myRandomGenerator の状態をファイル save.txt に保存できるようにしたいと考えています。どうすればいいですか?

4

1 に答える 1

9

説明どおり、 using で書き、 usingoperator<<で状態を読み戻し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);
}
于 2013-08-21T15:11:27.877 に答える