할머니의 콤퓨타 도전기

(C++) 벡터 중복원소 제거 본문

Program Language/C++

(C++) 벡터 중복원소 제거

ji.o.n.e 2021. 1. 30. 21:31

unique()

  • vector 배열에서 중복되지 않는 원소들을 앞에서부터 채워나가는 함수
  • algorithm 헤더에 존재
  • 중복되지 않는 원소들을 앞에서 채워나가는 역할. 따라서 남은 뒷부분은 그대로 vector 원소값이 존재
  • 따라서 뒷 부분에 필요없는 값 삭제시켜줘야함
  • n개 원소에 대한 unique 함수의 시간 복잡도는 O(n)

erase()

  • vector 배열에서 특정 원소 삭제하는 함수
  • v.erase(v.begin()+s, v.begin()+e) : [s,e)의 원소 삭제. 시작 지점은 닫힌 구간, 끝나는 지점은 열린 구간으로 삭제
  • 시간 복잡도 O(n)

v.erase(unique(v.begin(), v.end()), v.end());

위와 같이 중복된 원소들 제거하고 원하는 원소만 출력 가능

'Program Language > C++' 카테고리의 다른 글

(STL) map 요소 삭제 주의  (0) 2021.03.09
(C++) tolower, toupper 대소문자 변환  (0) 2021.01.30
priority queue 비교 연산자 구현  (0) 2021.01.30
(STL) map vs unordered_map  (0) 2021.01.06
(STL) deque 사용법  (0) 2020.08.03
Comments