To Do
-
PS 때 많이 사용되는 Set에 사용법에 대해 알아보자.
-
노드 기반 컨테이너 AVL 트리이다.
-
Key 값의 중복이 허락되지 않는다.
-
원소는 insert 함수에 의해 삽입이 되며 자동으로 정렬이 된다.
-
기본 정렬 기준은 오름차순이다.
선언
#include <set>
set<int> se;
삽입 및 특정 값 찾기
set<int> se;
set<int>::iterator iter;
se.insert(10);
se.insert(20);
se.insert(30);
iter = se.find(10);
cout << *iter << endl;
iter = se.find(15);
cout << *iter << endl;
iter = se.find(30);
cout << *iter << endl;
/*
Output
10
32767
30
*/
set<char> se2;
set<char>::iterator iter2;
se2.insert('g');
se2.insert('i');
se2.insert('d');
iter2 = se2.find('g');
cout << *iter2 << endl;
iter2 = se2.find('1');
cout << *iter2 << endl;
iter2 = se2.find('d');
cout << *iter2 << endl;
/*
Output
g
d
*/
특정 값 삭제 및 전체 삭제
set<int> se;
se.insert(1);
se.insert(2);
se.insert(3);
se.erase(2); // 특정 값 삭제
set<int>::iterator iter;
for(iter = se.begin(); iter != se.end(); iter++){
cout << *iter << endl;
}
cout << "=====" << endl;
se.clear(); // 전체 삭제
for(iter = se.begin(); iter != se.end(); iter++){
cout << *iter << endl;
}
cout << "End Line" << endl;
/*
Output
1
3
=====
End Line
*/
전체 탐색
set<int> se;
se.insert(1);
se.insert(2);
set<int>::iterator iter;
for(iter = se.begin(); iter != se.end(); iter++){
cout << *iter << endl;
}
/*
Output
1
2
*/
Empty 체크
set<int> se;
se.insert(1);
se.insert(2);
se.insert(3);
cout << se.empty() << endl;
cout << "=====" << endl;
se.clear();
cout << se.empty() << endl;
/*
Output
0
=====
1
*/
Size 체크
set<int> se;
se.insert(1);
se.insert(2);
se.insert(3);
cout << se.size() << endl;
cout << "=====" << endl;
se.clear();
cout << se.size() << endl;
/*
Output
3
=====
0
*/