在組面對的問題與最後一個元素的缺失:如何用`std :: set`中的反向迭代器擦除元素?
#include <bits/stdc++.h>
using namespace std;
int main()
{
set < pair <int,int > > a;
a.insert(make_pair(2,3));
auto it = a.rbegin();
a.erase(it.base()); // for deleting last element in set
cout << a.size() << endl;
return 0;
}
獲取運行問題,也試圖與自動,迭代和常量迭代,這不是working.Is有什麼用其他方法擦除集合中的元素?
編輯:如何刪除基於迭代器引用的特定元素? 如果我不喜歡:
auto it=a.begin(); a.erase(it); Here it = reference to the element for deletion
不work.Any其他方法來刪除基於迭代器的參考?
可能重複的[如何用反向迭代器調用擦除](https://stackoverflow.com/questions/1830158/how-to-call-erase-with-a-reverse-iterator) –