Tôi cố gắng để xóa các yếu tố cuối cùng của một MultiSet sử dụng:MultiSet xóa yếu tố cuối cùng
minheap.erase(minheap.rbegin());
Nó không biên dịch, và cung cấp cho 4-5 erros.
Lưu ý rằng trong C++ multisets, .end()
điểm bên cạnh phần tử cuối cùng và không ở phần tử cuối cùng.
Bất kỳ ý tưởng nào?
EDIT:
Tại sao này cung cấp các số khác nhau?
multiset <int>::reverse_iterator it1 = minheap.rbegin();
m1=*(++it1);
multiset <int>::iterator it2 = minheap.end();
m2=*(--it2);
Về chỉnh sửa của bạn: bạn không cần '++ it1',' rbegin' đã trỏ đến phần tử cuối cùng. –
Ồ, bạn nói đúng, xin lỗi, đã muộn với tôi: D – Cristy