multiset::erase()는 중복값을 모두 지울까?multiset은 중복된 값을 허용하는 컨테이너입니다.
하지만 erase()의 파라미터 타입에 따라 삭제 결과가 달라질 수 있습니다.
multiset<int> s = {3, 3, 5};
s.erase(3); // → {5}
multiset<int> s = {3, 3, 5};
auto it = s.find(3); // prev(s.end()), --s.end(), s.begin()
s.erase(it); // → {3, 5}
| 호출 방식 | 삭제 대상 |
|---|---|
erase(value) | 해당 값을 모두 삭제 |
erase(iterator) | 해당 위치 1개 삭제 |
중복값 중 하나만 지우고 싶다면 iterator로!
모두 지우고 싶다면 value로!