C++ STL

unordered_set/multiset

mintuchel 2023. 2. 24. 11:24

[unordered_set]

 

1. 중복허용 X

2. 정렬 X

3. hash 사용

4. insert, erase, find 모두 O(1)

 

그냥 set은 노드기반-이진탐색트리로 구현되어있지만

unordered_set은 hash-table 기반으로 되어 있다.

 

unordered_set 의 가장 큰 장점은 탐색시간이 O(1) 이라는 것

set은 이진탐색트리로 구성되어 있어 탐색 시간복잡도가 O(logN) 이지만 

unordered_set은 O(1) 상수함수 시간복잡도를 가지고 있음

 

unordered_set<int> set;

set.insert(5);
set.erase(10);

if(set.find(7)!=set.end()) cout << 1;
else cout << 0;

 


[multiset]

 

원래 set은 중복된 key를 허용하지 않지만

multiset은 중복된 key를 허용한다!