1) map container
- 연관 컨테이너 ( associative container) : 노드 기반 / 균형 이진트리 / 멤버 변수, 생성자 등이 유사
- key, value가 쌍으로 저장되며 pair 객체 형태로 저장된다.
- 노드 기반으로 균형 이진 트리 구조이다.
- key는 unique 해서 중복되지 않는다. ( key 중복은 multimap에서 가능하다. )
- set 과 마찬가지로 삽입되면서 자동으로 정렬된다. ( key 기준, default는 오름차순이다. )
2) 사용법
- 기본 생성 방법 : map < type, type > 변수이름;
- map 에 insert로 삽입하기 위해서는 pair 객체를 인자로 받아야함.
ex) m.insert(pair<int, int> (1,2));
3) 생성자 & 연산자
- map <int, int> m; // 기본 생성
- map <int> m1(m2); // m2을 복사한 m1 생성
- map <int> m(pred); // pred를 통해 정렬기준을 세움
- "==, !=, <, >, <=, >=" 사용 가능
- m[key] = value 로 추가 또는 수정가능.
4) 멤버함수
- m.begin();
- m.end();
- m. rbegin();
- m.rend();
- m.clear();
- m.count(k); // k의 개수를 반환
- m. empty();
- m.insert(k); // k 는 pair 객체, 알아서 정렬된 위치로 삽입
- m.erase(start, end); // 범위의 원소를 모두 제거
- m.find(k); // k가 없다면 m.end() 반환
- m2.swap(m1);
- m.upper_bound(k); // k가 끝나는 구간의 반복자
- m.lower_bound(k); // k가 시작하는 구간의 반복자
- m.equal_range(k); // k가 시작하는 구간과 끝나는 구간의 반복자 pair 객체를 반환
upper_bound 와 lower_bound가 합쳐진 멤버함수
- m.value_comp();
- m.size(); // 원소 개수 반환
- m.max_size(); // 남은 메모리 크기를 반환
'CS > Algorithm' 카테고리의 다른 글
| Vector (0) | 2021.07.02 |
|---|---|
| Priority Queue (0) | 2021.07.02 |
| BFS / DFS (Binary Tree) (0) | 2021.07.02 |
| Set (0) | 2021.07.02 |
댓글