我正在尝试使用以下方法擦除多重集的最后一个元素:
minheap.erase(minheap.rbegin());
它无法编译,并给出 4-5 个错误。
请注意,在 C++ 多重集中,.end()
指向最后一个元素的旁边,而不是最后一个元素。
有任何想法吗?
编辑:
为什么这提供不同的数字?
multiset <int>::reverse_iterator it1 = minheap.rbegin();
m1=*(++it1);
multiset <int>::iterator it2 = minheap.end();
m2=*(--it2);