Мультисет стереть последний элемент

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

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);
С некоторыми данными, добавленными в мультимножество, `m1 равно 1`, а` m2 равно 2`. Почему они не одинаковы?

Ответы на вопрос(1)

Ваш ответ на вопрос