我試圖抹掉使用多集的最後一個元素:多集刪除最後一個元素
minheap.erase(minheap.rbegin());
它不編譯,並給出錯誤回報4-5。
請注意,在C++ multisets中,.end()
指向最後一個元素旁邊,而不是最後一個元素。
任何想法?
編輯:
爲什麼這個提供不同的數字?
multiset <int>::reverse_iterator it1 = minheap.rbegin();
m1=*(++it1);
multiset <int>::iterator it2 = minheap.end();
m2=*(--it2);
關於你的編輯:你不需要'++ it1','rbegin'已經指向最後一個元素。 –
哦,你說得對,對不起,對我來說已經遲到了:D – Cristy