본문 바로가기
알고리즘

[알고리즘] c++ cpp vector 중복 제거

by keel_im 2020. 12. 4.
반응형

포인트

1. 중복을 제거하는 방법은 다양하게 있다. (#include <algorithm> 을 사용을 하여 중복을 제거하는 방법)

2. set을 이용하여 제거하는 방법

🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다. 

set 을 사용하는 방법

#include <set>

using namespace std;

int main(){
	vector<int> vc = {1, 1, 1, 2, 3, 4, 5, 5, 5, 6};
    
    set<int> set1(vc.begin(), vc.end());  //그러면 set안에는 자연스럽게
 	return 0;   
}

vector를 이용하는 방법

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

using namespace std;

int main(){
    vector<int> vc = {2, 3, 4, 2, 3};

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

    for (int i = 0; i <vc.size(); i++) {
        cout<<vc[i]<<' ';
    }

    cout<<'\n';

    sort(vc.begin(), vc.end()); //무조건 정렬을 해야 중복제거 가 가능하다.
    vc.erase(unique(vc.begin(), vc.end()), vc.end());

    for (int i = 0; i <vc.size(); i++) {
        cout<<vc[i]<<' ';
    }

    cout<<'\n';

    return 0;
}

 

실행 결과
2 3 4 2 3  --> 정렬 안할시 
2 3 4 --> 정렬 시

반응형

댓글