Multiset erase last element

Я пытаюсь стереть последний элемент мультимножества, используя:

minheap.erase(minheap.rbegin());

Это не компилируется и выдает 4-5 ошибок.

Обратите внимание, что в мультимножествах C++, .end() указывает рядом с последним элементом, а не на последний элемент.

Есть идеи?

EDIT:

Почему это дает разные числа?

multiset <int>::reverse_iterator it1 = minheap.rbegin();
m1=*(++it1);

multiset <int>::iterator it2 = minheap.end();
m2=*(--it2);
С некоторыми данными, добавленными в мультинаборе `m1 - 1` и `m2 - 2` . Почему они не одинаковые?
9
задан Cristy 24 January 2012 в 19:55
поделиться