重複の可能性:
要素が std::map に挿入されるタイミングを検出する
マップへの 137 要素の挿入を追跡します。VS2010 デバッガーを使用してマップのサイズを確認すると、確かに 137 になります。printf を使用して、マップのすべての要素を出力します。
(it = map.begin();it !=map.end();++it) {
printf ("%x",it->second);
}
その結果、137 個の値が出力されます。その後、私のプログラムは引き続き実行されます。そして、実行の終わり近くで、マップの値を処理する必要があります。
もう一度デバッガーで 137 個の要素があることを確認しますが、以前のようにすべてを印刷すると、最後の値が無効な値である場合に 138 個の値が印刷されます。
それがどのように/いつ発生し、何が原因map.end()
でシフトするかを理解する必要があります。