중복문자를 제거하기 위해 unique와 erase 함수를 사용할 수 있다.
1. 필요한 라이브러리
#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
2. vector input받기
int N; cin >> N;
for (int i = 0; i < N; i++) {
string tmp;
cin >> tmp;
v.push_back(tmp);
}
3. sort하기 (sort를 꼭 해줘야함)
sort(v.begin(), v.end(), comp_length);
4. erase하기
unique의 return값은 유일한 원소들이 끝나고 첫번째 쓰레기 원소가 나오는 곳의 위치이다. 예를 들면, 112335가 존재할 때 unique를 통해서 123513이 나오는데. 이때 빨간표시한 자리를 나타낸다. 그래서 erase를 통해 123513 파란부분을 제거할 수 있다.
v.erase(unique(v.begin(), v.end()),v.end());
5. 출력으로 결과 확인
for (int i = 0; i < v.size(); i++) {
cout << v[i] << endl;
}
'Programming > C++ STL' 카테고리의 다른 글
[C++ STL] queue(큐) (0) | 2020.09.15 |
---|---|
[C++ STL] stack(스택) (2) | 2020.09.15 |
[C++ STL] vector(동적배열) (0) | 2020.09.15 |
[C++ STL] C++ 입출력 속도 향상 (0) | 2020.09.07 |
[C++ STL] algorithm헤더의 유용한 함수들(정렬, 최댓값, 최솟값) (0) | 2020.09.02 |