vector 배열에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수이다.
algorithm이라는 헤더에 존재하는 함수이다.
unique함수를 사용하면 중복 없는 요소를 채운 후 남은 요소는 원래 배열의 요소를 그대로 넣는다.
즉, 중복되지 않는 원소들을 앞에서부터 채워나가는 역할을 하기때문에 남은 뒷부분은 그대로 vector 원소값이 존재한다.
또한 unique 함수가 끝나면 중복이 없는 요소의 끝 점을 반환한다.
중복을 완전히 제거하지 못하는 문제를 해결하기 위해 erase 함수를 사용해서 남은 뒷부분을 제거야한다.
erase 함수는 vector 배열에서 특정 원소를 삭제하는 함수이다.
v.erase(v.begin(), v.end()) 명령어를 입력하면 처음부터 끝까지 배열 내 모든 원소가 제거된다.
이를 적용하여 unique 함수를 적용한 벡터배열에서 필요한 원소만 뽑아낼 수 있다.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector <int> v;
v.push_back(1); v.push_back(1);
v.push_back(2); v.push_back(2);
v.push_back(3); v.push_back(3);
v.push_back(4);
v.push_back(5); v.push_back(5); v.push_back(5);
v.push_back(6);
v.erase(unique(v.begin(), v.end()), v.end());
return 0;
}
'C++' 카테고리의 다른 글
<STL> List (0) | 2024.02.01 |
---|---|
<STL> Vector (0) | 2024.02.01 |
<STL> Unordered Map (1) | 2024.01.30 |
<STL> map (0) | 2024.01.26 |
<STL> sort 함수 (0) | 2023.10.03 |