我有一个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");
我比较两个迭代器的行让我担心,因为我不确定我是否可以依赖这些不同的迭代器是相同的,即使指向相同的东西。
你怎么看?为什么这(不)有效?答案 0 :(得分:3)
指向同一元素的迭代器比较相等。如果没有,标准库中的每个算法都会中断。
是的,你的代码很好。