본문 바로가기
개발/C++

C++ 자료구조 - Map

by devsu 2020. 6. 21.

Map

- 완전이진트리. 구조로는 레드블랙트리를 사용한다. 키와 값을 이용한다. 정렬대상은 Key를 기준으로 오름차순으로 정렬한다.

- 삽입이 되면서 자동으로 정렬

 

 

1. 사용

 - #include <map>

- map<[Data Type1], [Data Type2]> [변수이름];

 

 

2. 생성자와 연산자

 - map<int, int> m;

   - 기본 선언 방법

 

 - map<int> m(pred);

   - pred를 통해 정렬기준(오름, 내림)

 

 - map<int> m2(m1);

   - m1을 복사한 m2를 생성

 

3. 멤버 함수

- m.begin();

  - 맨 첫 번째 원소를 가리키는 iter

 

- m.end();

  - 맨 마지막 원소를 가리키는 iter

 

- m.rbegin();

  - 역으로 처음을 가키리는 iter

 

- m.rend();

  - 역으로 마지막을 가리키는 iter

 

- m.clear();

  - 모든 원소를 제거

 

- m.count(k);

  - 원소 k의 갯수를 반환

 

- m.empty();

  - m이 비어있는지 확인

 

- m.insert(k);

  - 원소 k를 삽입

  - 자동으로 정렬

  - 삽입 성공 실패에 대한 여부는 리턴 값(pair<iterator, bool>)으로 나옴

  - pair.first는 삽입한 원소를 가리키는 iter, pair.second는 true, false 리턴

 

- m.insert(iter,k);

  - iter가 가리키는곳 부터 원소 k 삽입할 위치를 탐색하여 삽입

 

- m.erase(start, end);

  - start~end 범위의 원소를 모두 제거

 

- m.find(k);

  - 원소 k를 가리키는 반복자를 반환

 

- m2.swap(m1);

  - m1과 m2를 swap

 

- m.upper_bound(k);

  - 원소 k가 끝나는 구간의 반복자

 

- m.lower_bound(k);

  - 원소 k가 시작하는 구간의 반복자

 

- m.equal_range(k);

  - 원소 k가 시작하는 구간과 끝나는 구간의 반복자 pair 객체를 반환

 

- m.value_comp();

- m.key_comp();

  - 정렬 기준 조건자를 반환

 

- m.size();

  - 사이즈 반환

 

- m.max_size();

  - 최대 사이즈(남은 메모리 크기)를 반환

 

아래 링크 설명이 좋아 직접 타이핑하면서 외우는중

출처

https://blockdmask.tistory.com/87?category=249379

'개발 > C++' 카테고리의 다른 글

C++ 자료구조 - Deque  (0) 2020.06.21
C++ 자료구조 - Set  (0) 2020.06.21
C++ 자료구조 - List  (0) 2020.06.19
C++ 자료구조 - Vector  (0) 2020.06.19
C++ 자료구조 정리  (1) 2020.06.19