#include <set>
set<int> s;
s.insert(1);
s.insert(1);
s.insert(4);
s.insert(2);
s.insert(5);
for (const auto &i : s)
cout << i << " ";
//결과값
//1 2 4 5
- insert에서의 값은 동일한 값을 넣어도 한 개의 값만 들어가게된다. 같은 원소가 있다면 Insert 자체를 무시한다.
- 균형 이진트리로 구현 (red-black tree)
- O(log(n))의 시간 복잡도를 가진다.
- insert에 들어가는 값들은 자동으로 정렬 된다.
unordered_set
- set과 다르게 정렬되지 않으며 해시 함수를 사용하여 원소를 탐색한다.
- 해시 함수로 리턴값만 받아 바로 주소 찾아가면 되므로 탐색 시간이 O(1) 상수시간 밖에 안걸린다.
참고 자료 : https://blockdmask.tistory.com/79
https://ansohxxn.github.io/stl/set/
'C++ > Basic' 카테고리의 다른 글
[C++] cin의 false/true (0) | 2021.08.13 |
---|---|
[C++] 출력 함수 (0) | 2021.08.12 |
[C++] RTTI (0) | 2021.08.02 |
[C++] 예외 처리 (2) | 2021.07.26 |
[C++] 내포 클래스 (0) | 2021.07.23 |