[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

+ Recent posts