기본 패턴
cpp
std::map<std::string, int> ordered;
std::unordered_map<std::string, int> fastLookup;설명
- 두 컨테이너 모두 키와 값을 연결하는 사전 구조입니다.
std::map은 키가 정렬된 상태를 유지하고,std::unordered_map은 해시 기반으로 빠른 조회를 노립니다.- 순서가 중요하면
map, 평균 조회 성능이 중요하면unordered_map을 먼저 생각하면 됩니다. - 없는 키에
operator[]로 접근하면 새 원소가 생성될 수 있습니다.
짧은 예제
cpp
#include <iostream>
#include <string>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> scores;
scores["Mina"] = 1200;
scores["Jin"] = 980;
std::cout << scores["Mina"] << "\n";
}빠른 정리
| 항목 | 설명 |
|---|---|
std::map | 정렬된 키-값 컨테이너 |
std::unordered_map | 해시 기반 키-값 컨테이너 |
find | 키 존재 여부와 위치 확인 |
operator[] | 값 조회 또는 삽입 |
| 순서 유지 | map은 유지, unordered_map은 보장 없음 |
주의할 점
단순 조회만 하고 싶은데 operator[]를 쓰면 원치 않는 삽입이 일어날 수 있습니다. 존재 여부를 확인할 때는 find가 더 안전합니다.