map
: key - value로 이루어져 있는 컨테이너 (pair 객체 형태로 저장)
1) key는 중복값을 가질 수 없다
2)<map>
헤더에 존재한다
사용법
- 선언 & 삽입
map<string, int> m; m["csv"] = 60;
- 순회
/* 1번 방법 */ for(it = n.begin(); it != m.end(); it++){ cout << it->first << " " << it->second << endl; } /* 2번 방법 */ for(pair<string, int> a : m){ cout << a.first << " " << a.second << endl; }
- 삭제
/* key값으로 삭제 가능 */ m.erase("csv"); /* m.find()는 해당 요소의 iterator를 반환 */ m.erase(m.find("csv"));
- size() / empty()
m.size(); m.empty();
- map.find()
m.find("csv"); // 요소가 있으면 요소를 가리키는 iterator 반환 m.find("mutal"); // 요소가 없으면 m.end() iterator를 반환
unordered_map
: 사용법은 map과 같지만,
<unordered_map>
헤더에 있다.
일반 map은 균형트리로 이루어져 있고 , unordered_map은 해시 테이블로 되어 있다!
- 차이점 및 정리
1) 데이터가 많은 경우에는 unordered_map이 빠르다
2) key를 사용해 정렬해야 하는 경우에는 map이 좋다