기타/C++ 문법

<set> 자료구조

배발자 2022. 1. 14.
반응형

중복제거를 하기위해 쓰이는 자료구조이다.

많이 쓰이는 자료구조는 아니지만 문제에서 모든값의 중복을 없애고

오름차순으로 정렬하라는 문제가 나온다면 사용할 수 있다. 

 

헤더로 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

댓글