반응형
선언
- set은 중복을 없애고 입력할 때 정렬이 되어서 입력되는게 특징이다.
- multiset은 중복을 허용하는것만 다르고 나머지는 set과 같다.
- set도 마찬가지로 정렬 기준을 바꿀 때는 priority queue와 마찬가지로 구조체를 선언하거나 stl에서 지원하는 것을 사용하면됩니다.
- 이것에 대한 설명은 https://hagisilecoding.tistory.com/60 여기에서 구조체 구현 부분을 보시 면 자세히 나와있습니다.
#include <set> set<int> s1 // 중복없애고 정렬(default : 오름차순)
multiset<int> s2 // 중복허용 정렬(default : 오름차순)
set<int, greater<int>> s3 // 내림차순 정렬
set<int> s4(s2); // 선언 후 복사한 값으로 초기화
set<int> s4 = s2 // 선언 후 복사한 값으로 초기화
삽입, 삭제 등 기본 사용법
s.insert(1); // 1 삽입
s.clear(); // 모든 원소 삭제
s.erase(iterator); // iterator가 가르키는 값 삭제
s.erase(s.begin(),s.end()) // 범위안 모든 원소 삭제
s.erase(x) // x값 모두 삭제
auto iter = s.end();
iter--;
s.erase(iter); // 맨 뒤의 값 삭제
for(auto iter = s.begin(); iter!=s.end(); iter++){
cout << *iter << " ";
} // 모든 원소 출력
- insert : 삽입
- clear : 모든 원소 삭제
- begin() : 첫 시작점 리턴값 iterator
- end() : 끝나는점 리턴값 iterator
- count(k) : k의 원소 개수 반환
- size() : 모든 원소의 개수 반환
응용 최대값만 출력하고 싶다면?
auto iter = s.end();
iter--;
cout << *iter;
- 이런식으로 iterator를 이용하여 최대값을 출력할 수 있다.
반응형
'언어 > C++' 카테고리의 다른 글
c++ 우선순위 큐 priority_queue 사용법 [컴공과고씨] (1) | 2022.04.04 |
---|---|
C++ 비트 마스킹 (비트 연산) [컴공과고씨] (0) | 2022.04.03 |
C++ Vector(벡터) - find, erase, unique, sort, upper_bound, lower_bound 사용법 (0) | 2022.04.02 |