ある計算結果Aがあります。
Aを再利用する為に、キー値を使って
std::mapに入れて管理したいと思います。

Aがmapにあれば更新され、無ければ追加されます。

Aは複数あるので、そのまま使っていくとmapのサイズが
無尽蔵に大きくなってしまいます。

そこで、mapのサイズに上限を設けて、上限を超えたら
古いAから削除する実装にしたいと思います。

std::map< key, item > map;
std:dequeue< map::iterator > queue;

こういう実装を考えたのですが、Aが追加ではなく更新された場合、
queueの中ほどに入っているiteratorを削除して、おけつにpushしなければならず
効率が悪く感じました。もっと良い実装案はないでしょうか?