vector去重并排序
时间: 2024-10-12 20:09:45 浏览: 14
实现从vector中过滤重复的数据
5星 · 资源好评率100%
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 << " ";
}
阅读全文