본문 바로가기
CS/Algorithm

Map

by keyBomb 2021. 7. 2.

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

댓글