본문 바로가기

알고리즘을 위한 간략 정리/자료구조 - 연관 컨테이너

[C++] 맵(MAP)

핵심 요약

  • pair <key, value>를 원소로 저장
  • key를 기준으로 데이터를 정렬
  • key는 유일하다.
  • 찾고자 하는 원소를 빨리 찾기 위해 사용 - O(logN)
중복된 key값을 사용하고 싶다면 multimap을 사용하자!

 

 

사용 방법

 

#include <map>

 

 

원소 삽입

 

  1. pair <key, value> 임시 객체 생성을 통한 삽입
  2. pair <key, value>를 만들어주는 make_pair 함수 사용
  3. make_pair로 pair <key, value>를 만들어 이를 직접 삽입
  4. emplace 내부에서 pair <key, value>를 직접 생성하여 삽입
  5. insert_or_assign을 통해 key가 없는 경우에만 삽입

 

원소 삭제

 

1. erase(key)함수를 통해 제거

 

 

value 값 참조

 

- '[ ]' 연산자를 통해 value값 참조가 가능하다.

map <int, string> testMap;
map <string, int> testStringMap;

testMap[1] // string 값
testStringMap[”asd”] // int 값

 

 

반복문 데이터 접근(first, second)

 

- 인덱스 기반 반복문 활용 예제(iterator 사용)

//인덱스 기반
for (auto iter = m.begin() ; iter !=  m.end(); iter++){
	cout << iter->first << " " << iter->second << "\n";
}
cout << "\n";

- 범위 기반 반복문 활용 예제(for each문 사용)

//범위 기반
for (auto iter : m) {
	cout << iter.first << " " << iter.second << "\n";
}
cout<<"\n";