본문 바로가기
카테고리 없음

[C++ STL] vector 중복 제거 방법(sort, unique, erase) (set, unordered_set)

by 워킹독 2022. 12. 7.
728x90

 

vector<int> nums를 중복 제거한다면

 

1.sort, unique, erase 함수를 활용

1
2
3
4
5
6
7
sort(nums.begin(), nums.end(), less<int>());
nums.erase(unique(nums.begin(), nums.end()), nums.end());
 
// 분리해서 쓰면
sort(nums.begin(), nums.end(), less<int>());
auto it = unique(nums.begin(), nums.end());
nums.erase(it, nums.end());
cs

 

2. set, unordered_set 구조 활용

1
2
3
4
5
6
7
8
9
10
11
12
// 정렬이 필요할때
#include <set>
set<int> s(nums.begin(), nums.end());
 
// 정렬하지 않아도 될때
#include <unordered_set>
unordered_set<int> s(nums.begin(), nums.end());
 
// set을 벡터에 복사
nums.clear();
nums.resize(s.size());
copy(s.begin(), s.end(), nums.begin());
cs

 

 

 

728x90
반응형

댓글