unique 함수는 벡터 내에 중복되는 값을 뒤로 모아준다.
벡터의 쓰레기 값인 제일 뒷 부분으로 보내주고
반환값은 벡터의 쓰레기 값의 첫번째 위치가 된다.
따라서 벡터에 unique 를 사용하면 벡터 내 중복된 값을 제거할 수 있는데,
이때 주의할 점은 먼저 벡터를 sort 해야 된다는 것이다.
unique 함수는 연속된 중복 원소들에 대해 중복 여부를 판단하기 때문에
백터 내의 중복 제거를 위해서는
sort
한다.unique
함수를 통해 중복된 값들을 벡터의 뒷부분으로 보낸다.erase
함수를 통해 중복된 값을 제거한다.#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
vector<int> my_v;
my_v.push_back(2);
my_v.push_back(1);
my_v.push_back(1);
my_v.push_back(4);
my_v.push_back(5);
my_v.push_back(2);
my_v.push_back(3);
cout << "원래 벡터 : ";
for (int i = 0; i < my_v.size(); i++)
{
cout << my_v[i] << " ";
}
cout << "\n";
sort(my_v.begin(), my_v.end());
cout << "정렬 벡터 : ";
for (int i = 0; i < my_v.size(); i++)
{
cout << my_v[i] << " ";
}
cout << "\n";
my_v.erase(unique(my_v.begin(), my_v.end()), my_v.end());
cout << "중복 제거 벡터 : ";
for (int i = 0; i < my_v.size(); i++)
{
cout << my_v[i] << " ";
}
return 0;
}