본문 바로가기
  • 실행력이 모든걸 결정한다
유용한 정보, 링크

C++ Vector 중복 요소 제거하기

by 김코더 김주역 2020. 9. 11.
반응형

1. 필요 헤더

vector, algorithm

 

2. 필요 함수

  • sort : 범위 퀵 정렬
  • unique : 연속된 중복값을 맨 뒤로 보내고, 중복값이 시작되는 주소를 리턴한다.
  • erase : 범위 모두 제거

 

3. 소스 코드

※ unique 함수는 연속된 중복값을 찾으므로 미리 sort로 정렬을 해줘야 한다.

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

int main()
{
  vector<int> s;
  s.push_back(3);
  s.push_back(5);
  s.push_back(7);
  s.push_back(1);
  s.push_back(4);
  s.push_back(3);
  s.push_back(4);
  s.push_back(4);
  s.push_back(9);
  cout << "정렬 전 -> ";
  for(int i=0;i<s.size();i++){
	   cout<<s[i]<<" ";
  }
  cout << "\n";
  
  sort(s.begin(), s.end());
  //reverse(s.begin(), s.end()) 내림차 순으로도 가능
  cout << "정렬 후 -> ";
  for(int i=0;i<s.size();i++){
	 cout<<s[i]<<" ";
  }
  cout << "\n";

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

  cout << "중복 요소 제거 후 -> ";
  for(int i=0;i<s.size();i++){
	  cout<<s[i]<<" ";
  }
  cout << "\n";  
}

 

 

반응형

댓글