【C++】set, multisetに関するメモ
適当に追加していきます。
最大値の取り方
set<int> st; st.insert(1); st.insert(2); auto mx = st.rbegin(); // 最大値へのイテレータ cout << *mx << endl; // 2 st.erase(mx); // 最大値を削除する cout << *mx << endl; // 1
multisetで一つだけ要素を消去する
eraseにイテレータを渡すと一つだけ削除できます。
↓最大値を削除する
multiset<int> st; auto iter = st.rbegin(); st.erase(iter);
値を指定したい場合はfindを挟んでイテレータへ変換します。
multiset<int> st; int a = 10; // aを消去する st.erase(st.find(a));