set 이란?

- 데이터를 키로 사용하는 연관컨테이너

- 데이터를 오름차순으로 정렬하여 삽입

- 중복 데이터를(키를) 허용하지 않는다.

- 검색 속도가 빠르다

multiset이란?

- set과 동일하며 중복 데이터를(키를) 허용한다

 

set, multiset사용법

헤더

- #include<set>

-선언 방법

set<데이터 타입> 셋 이름;

multiset<데이터 타입> 멀티셋 이름;

 

-삽입, 삭제

s1.insert(데이터);
데이터 삽입 // 자동으로 크기에 맞는 위치에 정렬 삽입
s1.erase(데이터);
데이터 제거

-데이터 검색

s1.find(데이터); 찾는 데이터가 있으면 해당 위치 반복자 반환, 없을 시 end() 반복자 반환

 

내림차순 set

사용법

헤더 추가

-#include<functional>

-선언 방법

set<데이터 타입, greater<데이터 타입>> 셋 이름;

오름차순은 greater-> less 로 바꿔주거나 default이다

 

총 코드

#include <functional>
#include<set>
#include<iostream>
using namespace std;

int main()
{
	set<int> s1;
	set<int> s2 = { 3,1,5,4,2 };

	cout << "set<int> s1, s2" << endl;
	for (auto i : s2)
		cout << i << ", ";
	cout << endl;

	cout << "s1.insert()" << endl;
	s1.insert(4);
	s1.insert(8);
	s1.insert(3);
	s1.insert(2);

	for (auto i : s1)
		cout << i << ", ";
	cout << endl;

	cout << "s1.erase()" << endl;
	s1.erase(3);
	s1.erase(8);

	for (auto i : s1)
		cout << i << ", ";
	cout << endl;

	cout << "s1.find(2)" << endl;
	auto iter = s1.find(2);
	if (iter != s1.end())
		cout << "s1에 2 존재" << endl;
	else
		cout << "s1에 2 존재하지않음" << endl;
	cout << "mutiset<int>s3" << endl;
	multiset<int> s3 = { 3,3,3,1,5,7,2 };
	for (auto i : s3)
		cout << i << ", ";
	cout << endl;

	cout << "greater<int> 내림차순" << endl;
	set<int, greater<int>> s4 = {4,5,3,2,7,1};

	for (auto i : s4)
		cout << i << ", ";
	cout << endl;



}

'프로그래밍 공부 > STL' 카테고리의 다른 글

문자열 처리함수 c_str()  (0) 2022.02.27
C++ STL deque란?  (0) 2022.02.17
C++ STL list 란?  (0) 2022.02.15
STL vector 란?  (0) 2022.02.13
C++ STL 이란?  (0) 2022.02.12

+ Recent posts