unordered_map은 키-값(key-value) 쌍을 저장하는 해시 테이블 기반의 자료 구조이다. 빠른 탐색과 삽입, 삭제를 제공하며, 키의 순서는 유지되지 않는다.
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap;
// 삽입
umap.insert({"Grape", 40});
umap["Orange"] = 50;
// 삭제
umap.erase("Grape");
// 출력
for (const auto& pair : umap) {
std::cout << pair.first << ": " << pair.second << "\n";
}
return 0;
}
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap = {
{"Apple", 10},
{"Banana", 20},
{"Cherry", 30}
};
// 키 존재 여부 확인
auto it = umap.find("Banana");
if (it != umap.end()) {
std::cout << "Banana found: " << it->second << "\n";
} else {
std::cout << "Banana not found\n";
}
return 0;
}
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> umap = {
{"Apple", 10},
{"Banana", 20},
{"Cherry", 30}
};
// 반복자를 사용한 출력
for (auto it = umap.begin(); it != umap.end(); ++it) {
std::cout << it->first << ": " << it->second << "\n";
}
return 0;
}
| 함수 | 설명 |
|---|---|
insert() | 키-값 쌍 삽입. 이미 존재하는 키는 무시됨 |
erase() | 특정 키 또는 반복자를 통해 요소 삭제 |
find() | 특정 키의 반복자를 반환. 키가 없으면 end() 반환 |
size() | 컨테이너에 저장된 요소의 개수를 반환 |
empty() | 컨테이너가 비어 있는지 확인 |
clear() | 모든 요소 제거 |
at() | 키를 통해 값에 접근. 범위를 벗어나면 예외 발생 |
unordered_map은 해시 테이블 기반의 키-값 쌍 저장 컨테이너로, 빠른 탐색과 삽입이 필요할 때 적합하다.unordered_map을, 키가 정렬되어야 하는 경우 map을 사용하는 것이 좋다.