map
新しい要素を挿入したいオブジェクトがあります。これを行った後、この新しく挿入された要素が最後に挿入されたことを確認したいと思います。これを行うために、私は次の方法を考案しました。
map<T1,T2> m;
//populate m
auto ret_pair = m.insert({o1,o2}); //o1,o2 objects of types T1,T2
auto end = m.cend();
--end;
if (ret_pair.first != end) //<-- this worries me
throw runtime_error("boom");
2つのイテレータを比較する行は、同じことを指していても、これらの異なるイテレータが同じであると信頼できるかどうかわからないため、心配です。
どう思いますか?なぜこれは(機能しない)機能するのでしょうか?