1
イテレータを削除する: [最初、最後)。すなわち、範囲は最初に と最後の間にあるすべての要素を含みますが、最初に指し示された要素を含みますが、最後に指された要素は含まれません 。
これは、最初と最後が等しい場合に対処しないため、あいまいです。最初と最後が等しい場合、要素は削除されるかどうか?これは、問題のコードを表現したものです:
map<uint16_t, boost::shared_ptr<SPacket> >::iterator it = m_MyMap.find(ack);
if (it != m_MyMap.end()) m_MyMap.erase(m_MyMap.begin(), it);