Set
- Map과 동일하나 Key 값만 이용한다. 완전 이진트리. 우리가 알고 있는 그 이진탐색트리랑 작동구조 똑같다.
- Key 값은 데이터를 뜻함.
- 이진탐색트리의 장점을 그대로 가지고 오므로, 정렬해야할때, 빨리 데이터를 찾아야 할때 좋다.
1. 사용
- #include <set>
- set<[Data Type1], [Data Type2]> [변수이름];
2. 생성자와 연산자
- set<int> s;
- 기본 선언 방법
- set<int> s(pred);
- pred를 통해 정렬기준(오름, 내림)
- set<int> s2(s1);
- s1을 복사한 s2를 생성
3. 멤버 함수
- s.begin();
- 맨 첫 번째 원소를 가리키는 iter
- s.end();
- 맨 마지막 원소를 가리키는 iter
- s.rbegin();
- 역으로 처음을 가키리는 iter
- s.rend();
- 역으로 마지막을 가리키는 iter
- s.clear();
- 모든 원소를 제거
- s.count(k);
- 원소 k의 갯수를 반환
- s.empty();
- s이 비어있는지 확인
- s.insert(k);
- 원소 k를 삽입
- 자동으로 정렬
- 삽입 성공 실패에 대한 여부는 리턴 값(pair<iterator, bool>)으로 나옴
- pair.first는 삽입한 원소를 가리키는 iter, pair.second는 true, false 리턴
- s.insert(iter,k);
- iter가 가리키는곳 부터 원소 k 삽입할 위치를 탐색하여 삽입
- s.erase(start, end);
- start~end 범위의 원소를 모두 제거
- s.find(k);
- 원소 k를 가리키는 반복자를 반환
- s2.swap(s1);
- s1과 s2를 swap
- s.upper_bound(k);
- 원소 k가 끝나는 구간의 반복자
- s.lower_bound(k);
- 원소 k가 시작하는 구간의 반복자
- s.equal_range(k);
- 원소 k가 시작하는 구간과 끝나는 구간의 반복자 pair 객체를 반환
- s.value_comp();
- s.key_comp();
- 정렬 기준 조건자를 반환
- s.size();
- 사이즈 반환
- s.max_size();
- 최대 사이즈(남은 메모리 크기)를 반환
아래 링크 설명이 좋아 직접 타이핑하면서 외우는중
출처
'개발 > C++' 카테고리의 다른 글
C++ 자료구조 - unordered map(hash map) (0) | 2020.06.22 |
---|---|
C++ 자료구조 - Deque (0) | 2020.06.21 |
C++ 자료구조 - Map (0) | 2020.06.21 |
C++ 자료구조 - List (0) | 2020.06.19 |
C++ 자료구조 - Vector (0) | 2020.06.19 |