반응형
중복제거를 하기위해 쓰이는 자료구조이다.
많이 쓰이는 자료구조는 아니지만 문제에서 모든값의 중복을 없애고
오름차순으로 정렬하라는 문제가 나온다면 사용할 수 있다.
헤더로 set을 갖고 set <타입> 변수명 ; 으로 생성 할 수 있다.
set는 균형 잡힌 이진트리로 자동으로 오름차순으로 정렬이 된다.
만약 set <int> s 라는 set을 생성하고
값을 집어 넣을 때는 s.insert(값) 을 넣어주면 된다.
삭제를 할 때는 s.erase(값)을 해준다.
다음 코드를 보고 문법과 쓰임을 알아두자
#include <iostream>
#include <vector>
#include <set>
using namespace std;
int main() {
vector <int> a = { 1,2,1,2,3,1,2,3 };
set <int> s;
for (int i = 0; i < a.size(); i++) {
s.insert(a[i]);
}
cout << s.size() << endl;
for (auto it = s.begin(); it != s.end(); it++) {
cout << *it << " ";
}
cout << endl;
//또는
for (auto x : s)cout << x << " ";
cout << endl;
s.erase(3); //원소 지우기
for (auto x : s)cout << x << " ";
cout << endl;
if (s.find(3) == s.end()) cout << "false"; //원소 3이 끝에 있으면
else cout << "true";
return 0;
}
반응형
'기타 > C++ 문법' 카테고리의 다른 글
<resize> 벡터 초기화 (0) | 2022.01.19 |
---|---|
<reverse> 문자열 역정렬 (0) | 2022.01.17 |
<priority_queue> 자료구조 (0) | 2022.01.14 |
<map> 자료구조 (0) | 2022.01.14 |
<sort> 오름차순, 내림차순으로 정렬하자 (0) | 2022.01.14 |
댓글