vector去重排序
时间: 2023-11-01 21:58:05 浏览: 84
要将vector中的重复数字去除并进行排序,可以使用sort、unique和erase函数的组合。首先,对vector进行排序,然后使用unique函数去除相邻的重复元素,最后使用erase函数擦除重复元素后的部分。下面是示例代码:
vector<int> arr;
sort(arr.begin(), arr.end());
arr.erase(unique(arr.begin(), arr.end()), arr.end());
相关问题
vector去重并排序
Vector是C++标准库中的动态数组容器,它允许你在运行时添加、删除元素。如果你想要从一个vector中去除重复项并保持顺序,可以先创建一个新的vector,然后遍历原来的vector,只将未出现在新vector中的元素添加进去。这通常通过迭代器和条件判断来实现。
以下是一个简单的示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm> // 包含sort函数
std::vector<int> remove_duplicates_and_sort(const std::vector<int>& vec) {
std::vector<int> new_vec;
for (const auto& elem : vec) {
if (new_vec.end() == std::find(new_vec.begin(), new_vec.end(), elem)) {
new_vec.push_back(elem);
}
}
// 使用stl sort对新vector进行升序排序
std::sort(new_vec.begin(), new_vec.end());
return new_vec;
}
int main() {
std::vector<int> vec = {5, 3, 2, 5, 4, 2, 1};
std::vector<int> unique_sorted_vec = remove_duplicates_and_sort(vec);
for (const auto& num : unique_sorted_vec) {
std::cout << num << " ";
}
c++ vector去重
可以使用STL中的unique()函数来进行vector去重操作。
unique()函数的作用是将相邻的重复元素放到vector的尾部,并返回一个新的迭代器指向去重后的最后一个元素的下一个位置。最后再使用erase()函数将重复元素删除即可完成去重操作。
示例代码如下:
```c++
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
vector<int> vec = {1, 2, 3, 2, 4, 3, 5};
sort(vec.begin(), vec.end()); //先排序
auto it = unique(vec.begin(), vec.end()); //去重
vec.erase(it, vec.end()); //删除重复元素
for (int i : vec) {
cout << i << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
1 2 3 4 5
```
阅读全文