unique

nana·2025년 1월 19일

c++ 정리

목록 보기
1/6

목적

인접한 중복 원소를 제거

동작

unique는 인접한 중복된 원소들을 찾아 첫 번째 원소만 남기고, 나머지 원소들은 뒤로 밀어냅니다.
이 함수는 실제로 원소를 제거하는 것이 아니라, 중복된 원소들을 뒤로 덮어씌우는 방식입니다.

반환 값

unique는 중복이 제거된 마지막 유효 원소의 다음 위치를 반환합니다. 이후 erase와 결합하여 실제로 원소를 삭제할 수 있습니다.

예제

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> vec = {1, 1, 2, 2, 3, 3, 3};
    
    // unique로 인접한 중복을 제거
    auto it = std::unique(vec.begin(), vec.end());

    // 중복을 제거한 후의 벡터 (하지만 아직 끝까지 유효하지 않음)
    vec.erase(it, vec.end());

    for (int num : vec) {
        std::cout << num << " ";  // 출력: 1 2 3
    }

    return 0;
}

0개의 댓글