如何保存std :: mersenne_twister_engine的状态以便以后恢复?

fbr*_*eto 3 c++ state mersenne-twister c++11

我想保存一个状态,std::mersenne_twister_engine以便我可以在以后确切地恢复它.我知道我可以保存原始种子并调用discard引擎向前滚动一些步骤,但这需要了解引擎推进的次数,更不用说discard看起来像是一种O(N)向前推动引擎的低效()方式.

如何保存发动机的准确状态?

zah*_*hir 6

根据该发动机应该支持序列化和从一个标准流.