알고리즘/기타
[C++] Unique
키베이루
2023. 5. 9. 19:19
sort, unique, erase를 사용해서 중복을 제거할 수 있다.
unique : 인접한 중복된 요소가 있을 경우, 뒤에서 부터 제거 하고 나머지 요소의 첫번째 인덱스를 반환한다.
ex) { 1, 1, 2, 2, 3, 3 } -> { 1, 2, 3, 2, 3, 3 }, index = 3 반환 (3부터 중복이 없기 때문)
int main() {
vector<int> v{ 1,3,2,2,1,3 };
sort(v.begin(), v.end()); // 인접한 요소에서 중복을 제거하기 때문에 정렬 해야함
for (auto i : v)
{
cout << i << ' ';
}
cout << endl;
auto temp = unique(v.begin(), v.end()); // temp에 중복이 아닌 인덱스를 저장
v.erase(temp, v.end()); // 중복이 아닌 인덱스부터 끝까지 제거
for (auto i : v)
{
cout << i << ' ';
}
}
/* 1 2 3 */