To Do
- Vector안에서 중복된 값을 삭제해보자.
Code
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> v;
v.push_back(1);
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(3);
v.push_back(2);
v.push_back(1);
for(int i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
for(int i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
return 0;
}
1 1 2 3 3 2 1
1 2 3
-
방법은 굉장히 간단하다.
-
sort와 unique 사용을 위해서 algorithm 헤더를 선언한 후
-
sort() -> v.erase(unique(v.begin(),v.end()), v.end())만 하면 끝 !
-
물론 int 타입뿐 아니라 다른 타입도 가능하다.
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<string> v;
v.push_back("a");
v.push_back("a");
v.push_back("B");
v.push_back("b");
v.push_back("A");
v.push_back("b");
v.push_back("F");
for(int i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()),v.end());
for(int i=0; i<v.size(); i++)
cout << v[i] << " ";
cout << endl;
return 0;
}
a a B b A b F
A B F a b