기타/C++ 문법
<set> 자료구조
배발자
2022. 1. 14. 23:45
반응형
중복제거를 하기위해 쓰이는 자료구조이다.
많이 쓰이는 자료구조는 아니지만 문제에서 모든값의 중복을 없애고
오름차순으로 정렬하라는 문제가 나온다면 사용할 수 있다.
헤더로 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;
}
반응형