セーブとロードでの型違いは×

固定長のものはセーブとロードが同一環境であるならば、構造体にして
その構造体をそのままセーブ、ロードすることで問題ない。


しかし、可変長のものはそうはいかないので、可変した際の数やらなんやらを保存しなくてはいけない。
今回、std::mapを使っていたのもを保存したわけだが、前に容量が大きくなりすぎたので
型をunsigned intからunsigned shortに変更したことがある。


それで、セーブのときは、std::map::iterator::firstとstd::map::iterator::secondを
使えばよいので問題ないが、ロードの際は一度この値を読み込んだ後に
設定しなければいけない。
その読み込む際に、読み込む変数がunsigned int型で読み込んでいたため
読み込みにずれが生じてしまった。
可変長のデータを扱うときは注意しましょう。