[STL] C++ set, multiset, unordered_set
결과
multiset 결과
코드
1. set
- 집합의 구조를 갖는다.
ㄴ 중복 원소 불가능
- 자동으로 오름차순으로 정렬한다.
ㄴ 내림차순으로 정렬하기 위해서는 아래처럼 선언을 해준다.
2. multiset
- set 라이브러리의 포함되어 있다.
- 기존의 set과는 다르게 동일한 값의 중복 저장이 가능하다.
- erase() 함수를 사용하여 삭제 시 값을 인수로 준다면 전부 지우지만
하나 씩 지우기 위해서는 find() 함수를 추가적으로 사용하여 삭제하여야 한다.
3. unordered_set
- 집합의 구조를 갖는다.
ㄴ 중복 원소 불가능
- 기존의 set와는 다르게 정렬을 하지 않는다. (=삽입한 순서)
- 사용하기 위해서는 #include <unordered_set> 해주어야 한다.
insert(E e) : 삽입
- 값을 삽입한다.
erase(E e) 또는 erase(set<E>::iterator) : 삭제
- 값으로 삭제할 수 있다.
- 혹은 iterator을 인수로 주어서 삭제할 수도 있다.
ㄴ multiset일 경우 중복 값이 가능하므로
값을 넣어 삭제 시 해당 값이 모두 삭제되지만
find를 사용하여 iterator을 인수로 주면 하나씩 삭제가 가능하다.
find(E e) : 탐색
- 존재하지 않는 값이면 set.end()를 리턴한다.
( end의 iterator )
'C++ > STL' 카테고리의 다른 글
[STL] C++ map, multimap, unordered_map (0) | 2020.04.11 |
---|---|
[STL] C++ deque 덱 생성 및 삽입, 삭제 (0) | 2020.04.08 |
[STL] C++ priority_queue 우선순위 큐 (0) | 2020.04.07 |
[STL] C++ queue 생성 및 삽입, 삭제 (0) | 2020.04.07 |
[STL] C++ stack 생성 및 삽입, 삭제 (0) | 2020.03.31 |