Multiset apaga o último elemento

Estou tentando apagar o último elemento de um multiset usando:

minheap.erase(minheap.rbegin());

Não compila e fornece 4-5 erro

Observe que em multisets C ++,.end() aponta ao lado do último elemento, e não ao último element

Alguma ideia

EDITAR

Por que isso está fornecendo números diferentes?

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

multiset <int>::iterator it2 = minheap.end();
m2=*(--it2);
Com alguns dados adicionados no multiset `m1 é 1` e` m2 é 2`. Por que não são os mesmos?

questionAnswers(2)

yourAnswerToTheQuestion