반응형
728x170
set이용하기
#include<set> 을 해야한다.
이진트리로 구현되어있음
**원소가 오름차순 또는 내림차순으로 정렬되어 저장된다는 점
내가 가지고 있는 vector vec을 set으로 만드려면 저렇게 선언하면 된다.
//set은 중복을 제거하면서 sort도 함
set<int> s(vec.begin(), vec.end());
배열은 아래와 같이
set<int> s(arr, arr+ 100);
일반적으로는 이렇다.
set<자료형> 변수
set<자료형> 변수(복사할 변수)
set<자료형> 변수 = 복사할 변수
*** 하지만 set은 iterator가 bidirentional 이므로
원래 우리가 알던 연산이 안되는 경우가 있다 참고하자.
기본적으로 아래와 같이 iterator를 반환한다.
s.begin() : set의 시작이 되는 주소 값 반환
s.end() : set의 마지막 부분에 대한 주소 값 반환(정확히 마지막 뒤 공백구간)
s.rbegin() : set의 마지막 부분을 시작점으로 지정
s.rend() : set의 첫번 째 부분을 마지막점으로 지정
또한 삽입 삭제가 가능하다.
(삽입 삭제가 되어도 정렬상태 유지)
s. insert(value)
s. erase(value)
다른 함수로는
s. emty() : 비어있는지 확인
s. find(value) : 해당 value가 원소로 있는지 찾아주고, 해당 value의 iterator 반환
s. count(value) : 해당 value가 몇개 있는지 count 해서 반환
s.size() : s에 저장되어 있는 크기
S.lower_bound(value): value 이상인 가장 작은 값
S.upper_bound(value) : value초과인 가장 작은 값
728x90
반응형
그리드형
'문제풀이(Problem Solving) > C++ 문제풀이에 유용한 것들' 카테고리의 다른 글
set처럼 vector에서도 중복된 것들 없애기, unique() (0) | 2021.06.07 |
---|---|
경계값 iterator 찾기 lower_bound() 와 upper_bound() (0) | 2021.06.07 |
오름차순 정렬말고 comp로 sort 커스터마이징하기 (0) | 2021.06.07 |
반올림 함수, round() (0) | 2021.06.07 |
순열, 순서구분하고 선택하는 방법 (0) | 2021.06.07 |