본문 바로가기

Cpp

STL MAP

map

각 노드가 key와 value 쌍으로 이루어진 트리입니다.  특히, 중복을 허용하지 않습니다.

따라서 map은 first, second가 있는 pair 객체로 저장되는 데 first- key로 second- value로 저장됩니다. 

C++의 map의 내부 구현은 검색, 삽입, 삭제가 O(logn) 인 레드블랙트리 구성되어 있습니다.

 

형태

map<key, value> 변수이름;

 

정렬

map 은 자료를 저장할 때 내부에서 자동으로 정렬한다.

key 를 기준으로 정렬하고 오름차순이다.

내림차순으로 하고 싶다면, 

1. map<int, int, greater> 변수이름;\

2. int 형 등의 데이터를 내림차순으로 정렬할 경우, 데이터에 - 를 붙여 삽입해주면 내림차순 정렬이 된다.

등의 방법이 있다.

 

map 을 사용하려면 #include <map> 을 추가해야한다.

 

map 안에서 데이터 찾기

map 에서 데이터를 찾을 때 반복자를 사용한다.

찾지 못하면 map.end() 를 반환한다.

m.find(데이터) != m.end() >>> 데이터가 있다는 뜻.

 

데이터 삽입

map 은 중복을 허용하지 않기 때문에 insert를 수행할 때, key 중복이면 insert를 수행하지 않는다.

 

데이터 접근

first로 첫 번째 인자, second로 두 번째 인자를 받는다.

 

범위 기반 반복문 활용한 예제

for(auto iter:m)
{
	cout << iter.first << " " << iter.sceond << endl;
}

 

요소 삭제

1. 특정 위치의 요소 삭제

m.erase(m.begin()+2);

 

2. key 값을 기준으로 요소 삭제

m.erase("a");

 

3. 모든 요소 삭제

m.erase(m.begin(), m.end());

 

clear 로 모든 요소 삭제

m.clear();

 

 

 

 

 

 

 

 

'Cpp' 카테고리의 다른 글

함수 포인터  (0) 2023.06.13
포인터  (0) 2023.06.12
deque(double ended queue)  (0) 2023.04.10
비트 연산자  (0) 2023.02.28
더블 버퍼링  (0) 2023.02.27