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 |