セットの最後の要素を削除して問題に直面して:`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;
}
はランタイム問題、また自動、イテレータとのconstイテレータで試してみましたを取得する、それがどんな存在し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) –