# 给vector去重复的三个方法 ## 方法一、利用set容器 ```c++ #include #include #include using namespace std; int main(){ int myInts[] = {1, 2, 3, 1, 1}; int len = sizeof(myInts)/sizeof(int); vector vec(myInts, myInts+len); set s(vec.begin(), vec.end()); //我觉得最好新建一个vector对象 vec.assign(s.begin(), s.end()); for(int x: vec){ cout << x << ", "; } return 0; } ``` ## 方法二、结合sort和unique函数 ```c++ #include #include #include using namespace std; int main(){ int myints[] = {1,2,3,1,1}; int len = sizeof(myints)/sizeof(int); vector vec(myints, myints + len); sort(vec.begin(), vec.end()); //这样不行,最好的解决方案还是方法一 //vec.erase(unique(vec.begin(), vec.end())); vec.erase(unique(vec.begin(), vec.end()), vec.end()); for(int x: vec){ cout << x << ", "; } return 0; } ``` ## 方法三、使用remove函数 ```c++ #include #include #include #include using namespace std; int main(){ std::vector vec(0); for(int i = 0 ; i < 10; i++) { vec.push_back(i); } vec.push_back(7); auto ret = std::remove(vec.begin(), vec.end(), 7); vec.erase(ret, vec.end()); for(auto &i : vec) { std::cout << i << " " << std::endl; } return 0; } ```