1. Set
- 저장 데이터의 값이 유일한 자료구조이다.(중복이 허용되지 않는다.)
- 노드 기반 컨테이너이다.
- 임의 접근이 불가능하다.
- 균형 이진 트리로 구현되어있다.
- 각 노드는 pair<T,T>로 구성되었다.
- multiset은 set에서 중복이 허용된다는 것 말고는 다른게 없기 때문에 함께 정리한다.
2. Include
#include <set> // multiset도 set에 포함되어있음
3. 생성자
std::set<T> name; // 기본 오름차순(== set<T,less<T>>)
std::set<T> name(const key_compare& _Pred); // 정렬 방법을 _Pred로 설정한다. (== set<T, _Pred>)
std::set<T> name(const set& otherSet);
std::set<T> name(_Iter first, _Iter last); // [first,last)
std::set<T> name(_Iter first, _Iter last, const key_compare& _Pred);
namespace std를 사용. (less, grater 도 std에 포함)
기존의 set을 복사하여 생성 가능.
2개의 반복자 사이에 있는 원소들로 초기화 가능.
생성시 정렬기준을 설정 가능.
템플릿 <T>에 <T, _Pred<T>> 와 같이 정렬 방법을 넣어 줄 수 있다. (기본값은 less<T>)
4. function
// set에 원소를 삽입한다.
void insert(initializer_list<T> _Ilist)
void insert(_Iter first, _Iter last) [first,last)
_Pairib insert(T&& value) // 삽입원소를 가리키는 반복자와 성공 여부 bool값의 pair 객체 반환.
_Pairib insert(const T& value)
// iter부터 value를 빠르게 삽입한다.(삽입 위치를 지정해서 시간을 줄임), 반환값은 삽입원소를 가리키는 반복자.
iterator insert(const_iterator iter, T&& value)
iterator insert(const_iterator iter, const T& value)
// key값에 해당하는 원소를 찾아 반복자 반환.
iterator find(const T& key) // == lower_bound(const T& key)
// key값에 해당하는 원소가 시작되는 주소를 가리키는 반복자 반환
iterator lower_bound(const T& key)
// key값에 해당하는 원소가 끝나는 다음 주소를 가리키는 반복자 반환
iterator upper_bound(const T& key)
// key값에 해당하는 원소의 갯수를 반환
size_type count(const T& key)
// set의 원소 수를 반환
size_type size()
// set이 비어있으면 true를 반환
bool empty()
// set의 모든 원소를 제거
void clear()
// 두 set의 내용을 바꾼다.
void swap(set<T>& _Right)
// set의 첫 번째 원소를 가리키는 반복자 반환
iterator begin()
const_iterator cbegin() // 순회 불가능
// set의 마지막 원소 다음의 공간을 가리키는 반복자 반환
iterator end()
const_iterator cend() // 순회 불가능
// set의 마지막 원소를 가리키는 역순 반복자 반환
reverse_iterator rbegin()
const_reverse_iterator crbegin() // 순회 불가능
// set의 첫 번째 원소 이전의 공간을 가리키는 반복자 반환
reverse_iterator rend()
const_reverse_iterator crend() // 순회 불가능
// key에 해당하는 원소 모두제거. 반환값은 제거한 원소의 수.
size_type erase(const T& key)
// set의 원소를 제거. 반환값은 제거한 원소의 다음 원소를 가리키는 반복자.
iterator erase(iterator iter) // 반복자가 가르키는 원소 제거
iterator erase(const_iterator iter)
iterator erase(const_iterator first, const_iterator last) // [first,last) 사이의 원소 모두 제거
// T의 생성자에 파라미터를 넘겨서 T객체 생성후 삽입, 반환값은 삽입된 원소를 가리키는 반복자와 성공여부 bool값 페어
_Pairib emplace(_Valty&&... _Val)
// iter가 가르키는 곳에 삽입, 반환값은 삽입된 원소를 가리키는 반복자
iterator emplace_hint(const_iterator iter,_Valty&&... _Val)
// key 정렬방식 반환
key_compare key_comp()
// value 정렬 기준 반환 set에서는 key_comp()와 같다.
value_compare value_comp()
'공부 > Standard Template Library (C++ STL)' 카테고리의 다른 글
[C++ STL] Array (1) | 2019.07.12 |
---|---|
[C++ STL] Vector (0) | 2019.04.26 |
[C++ STL] Deque (0) | 2019.04.26 |
[C++ STL] List (0) | 2019.04.25 |
[C++ STL] Queue (0) | 2019.04.25 |