[c++] C++ 11 이상에서의 unordered_map과 unordered_set 사용법
C++ 11부터 표준 라이브러리는 unordered_map과 unordered_set을 지원합니다. 이들은 각각 해시 테이블을 기반으로 하는 맵과 집합 자료 구조를 제공하여 검색, 삽입, 삭제 등의 연산을 평균 O(1)의 시간 복잡도로 수행할 수 있습니다.
unordered_map 사용법
unordered_map은 key-value 쌍을 저장하는 자료 구조입니다. 다음은 unordered_map을 사용하는 간단한 예제입니다.
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_map<std::string, int> myMap;
// 삽입
myMap["apple"] = 5;
myMap["banana"] = 3;
// 조회
std::cout << "apple: " << myMap["apple"] << std::endl;
// 삭제
myMap.erase("banana");
return 0;
}
unordered_set 사용법
unordered_set은 중복을 허용하지 않는 집합 자료 구조입니다. 다음은 unordered_set을 사용하는 간단한 예제입니다.
#include <iostream>
#include <unordered_set>
int main() {
std::unordered_set<int> mySet;
// 삽입
mySet.insert(5);
mySet.insert(3);
// 조회
if (mySet.find(5) != mySet.end()) {
std::cout << "5 exists in the set" << std::endl;
}
// 삭제
mySet.erase(3);
return 0;
}
unordered_map과 unordered_set은 각각 해시 함수를 사용하여 요소를 저장하므로, 검색, 삽입, 삭제 연산의 시간 복잡도가 상수 시간에 가깝습니다. 이를 통해 대용량 데이터에 대한 효율적인 처리가 가능해집니다.
이상으로 C++ 11 이상에서의 unordered_map과 unordered_set 사용법에 대해 알아보았습니다. 자세한 내용은 C++ 공식 문서를 참고해주세요.