할머니의 콤퓨타 도전기
(C++) 벡터 중복원소 제거 본문
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