Space O(n)
Search O(log n)
Insert O(log n)
Delete O(log n)
// 조건에 따라 여러 개의 요소 삭제 (예: 짝수 키 삭제)
for (auto it = m.begin(); it != m.end(); ) {
if (it->first % 2 == 0) {
// 요소 삭제 후, 삭제된 요소 다음을 가리키는 이터레이터 반환
it = m.erase(it);
} else {
++it; // 삭제하지 않는 경우 다음 요소로 이동
}
}
less<T>
greater<T>
//
struct AbsComp {
bool operator()(const int &l, const int &r) const {
if(abs(l) != abs(r)) return abs(l) < abs(r)
return l < r;
}
};
// Custom Data type의 경우 직젖 operator overloading 해줘야함
struct Data {
int a, b, c;
bool operator<(const Data& r) const {
return a < r.a;
}
};
pair<iterator, iterator> ret = m.equal_range;
m.find() // 최초 원소
m.erase(x) // 모두 제거
m.erase(m.find(x)) // 최초 하나 제거