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값이다.
[프로그래머스] 완주하지 못한 선수, map과 unordered_map의 차이
해시: 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배
boycoding.tistory.com
'Algorithm > C++ STL' 카테고리의 다른 글
| <string> STL 정리 (0) | 2020.12.17 |
|---|---|
| <vector> STL 정리 (0) | 2020.12.17 |