C++11에 추가된 STL 컨테이너 중 unodered_map 이란 것이 있습니다. 기존의 hash_map과 유사한 컨테이너입니다. hash_map이 비표준인 것에 반해(그래서 네임스페이스도 stdext), unodered_map은 표준으로 C++11부터 포함 되었습니다. MSDN의 hash_map 페이지에서도 표준인 unodered_map 사용을 권장 하고 있습니다.


그래서 hash_map과 unordered_map의 성능을 간단 비교해봤습니다. 비교 방법은 10,000,000개의 정수 키와 10,000,000개의 랜덤 문자열 키를 삽입, 검색을 해봤습니다.



다른 결과들은 비슷한 성능을 나타는데 비해, 정수형 검색에서 unordered_map이 hash_map에 비해 상당히 우월한 성능을 보여주고 있습니다. 그리고 다른 부분에서도 조금이나마 unordered_map이 더 빠르네요. 이제 앞으로는 hash_map 대신 unordered_map을 사용하는 것이 좋을 것 같습니다.


참고 : http://fgda.pl/post/7/gcc-hash-map-vs-unordered-map

+ Recent posts