본문 바로가기

CS/자료구조

<자료구조> set과 multiset

set : 중복된 원소는 단 한개만 넣을 수 있음, 오름차순으로 정렬됨

 

multiset : 중복되는 원소도 집어넣을 수 있는 자료구조입니다. key, value 형태로 집어넣을
필요도 없고 넣으면 자동적으로 정렬되는 편리한 자료구조입니다. 아래처럼 erase, find,
insert가 가능합니다.

 

 

 

 

 

 

set 활용 코드


#include<bits/stdc++.h>
using namespace std;

int main()
{
	set<pair<string, int>> _set;
	_set.insert({"test", 1});	// 중복된 값 하나만 저장됨 
	_set.insert({"test", 1});	
	_set.insert({"test", 1});	
	_set.insert({"test", 1});
	cout << _set.size() << endl;
	
	/*
	1
	*/
	
	
	return 0; 
}

 

 

multiset 활용 코드


#include<bits/stdc++.h>
using namespace std;
multiset<int> s; 

int main()
{

	s.insert(12);	
	s.insert(10);	
	s.insert(2);	
	s.insert(10);	
	s.insert(90);	
	s.insert(85);	
	s.insert(45);	
	
	for (auto it = s.begin(); it != s.end(); it++)
		cout << (*it) << ' ';
	cout << '\n';
	
	auto it1 = s.find(10);
	auto it2 = s.find(90);
	
	s.erase(it1, it2); // 10 ~ 90전까지 지워짐 
	
	for (auto it = s.begin(); it != s.end(); it++)
		cout << (*it) << ' ';
	s.erase(s.begin()); // 시작만 지워짐 
	cout << '\n';
	
	for (auto it = s.begin(); it != s.end(); it++)
		cout << (*it) << ' ';
	
	
	/*
	2 10 10 12 45 85 90
	2 90
	90
	*/	
	return 0; 
}

'CS > 자료구조' 카테고리의 다른 글

<자료구조> 우선순위 큐  (0) 2022.04.20
<자료구조> queue와 deque  (0) 2022.04.19
<자료구조> stack  (0) 2022.04.19
<자료구조> 1차원 배열과 2차원 배열  (0) 2022.04.19
<자료구조> Unordered Map과 Map 차이  (0) 2022.02.15