본문 바로가기

Algorithm/C++ STL

<map> STL 정리

C++에는 여러 종류의 맵이 있으며, 그 중 map(#include<map>)과 unordered_map(#include <unordered_map>)이 주로 쓰인다.

map과 unordered_map은 사용방법이 완벽히 동일하다. 하지만

map은 균형트리인 red black tree로 구현되어 있고, unordered_map은 해시 테이블로 구현되어 있다.

데이터가 작다면 unorderd_map이, 크다면 map이 유리하다.

 

 

unordered_map <string, int> m; //key가 string이고, value가 int인 unordered_map 선언

 

map["hi"]=5; // 새로 insert, 기존값 있으면 덮어쓴다.

map["hi"]++; //기존값 있으면 1증가, 없으면 새로운 value는 1로 한다.

ex) for (string name : participant) { ++participants[name]; }

for(auto pair : m)으로 접근할 때 pair.first가 key값, pair.second가 value값이다.

 

 

 

참고: boycoding.tistory.com/226

 

[프로그래머스] 완주하지 못한 선수, map과 unordered_map의 차이

해시: 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배

boycoding.tistory.com

 

'Algorithm > C++ STL' 카테고리의 다른 글

<string> STL 정리  (0) 2020.12.17
<vector> STL 정리  (0) 2020.12.17