[C++ STL] Set
2021. 4. 10. 17:42
1. Set ?
- key - value 구조를 가지는 associative container(set, map 포함). set은 key=value 형태
- 이진 탐색 트리 자료구조 (Red-Black 트리). 삽입, 삭제, 탐색 용이
- key 중복 저장 불가 (중복 저장은 multiset 사용)
- 삽입 순서에 상관 없이 key 기준으로 정렬되어 입력 됨 (default 정렬기준은 오름차순)
2. 사용법
set 생성자
# include <set>
set<int> s;
set<int> s2(s.begin(), s.end()); // 선언 후 복사한 값으로 초기화
set<int> s2(s); // s2를 s 복사한 값으로 초기화
set<int> s2 = s // 선언 후 복사한 값으로 초기화
set 멤버 함수
int x; // key 값
s.empty();
s.size();
s.max_size();
s.insert(x);
s.erase(s.begin()+3); // set의 index 3 위치의 요소 삭제
s.clear();
s.swap(s2);
s.find(x); // set에 x가 존재할 경우 해당 위치의 반복자를 반환, 없을 경우 s.end() 반환
s.upper_bound(x); // set에 x가 존재할 경우 해당 위치 다음의 반복자 반환
s.lower_bound(x); // set에 x가 존재할 경우 해당 위치의 반복자 반환
s.equal_range(k); // x가 시작하는 구간과 끝나는 구간의 반복자 pair 객체 반환
s.key_comp(4,3); // 괄호 안 값들의 정렬 상태와 set의 정렬 상태 비교 후 같으면 true 반환
'C++' 카테고리의 다른 글
[C++ STL] List (0) | 2021.04.13 |
---|---|
[C++] 표준 템플릿 라이브러리(STL: Standard Template Library) (0) | 2021.04.13 |
[C++ STL] find (0) | 2021.04.10 |
[C++ STL] Vector (0) | 2021.04.09 |
[C++ STL] Stack (0) | 2021.04.09 |