vector 删除重复
时间: 2024-12-29 07:08:05 浏览: 6
在向量(vector)中删除重复元素通常是通过将元素添加到一个新的容器,并利用迭代器来避免直接修改原向量。这里是一个简单的示例,假设我们有一个`std::vector<int>`:
```cpp
#include <iostream>
#include <vector>
#include <unordered_set>
std::vector<int> removeDuplicates(std::vector<int>& vec) {
std::unordered_set<int> uniqueSet;
for (int i : vec) {
if (!uniqueSet.count(i)) {
uniqueSet.insert(i);
// 或者你可以直接将新元素添加到新的向量中
// std::vector<int> newVec;
// newVec.push_back(i);
}
}
return uniqueSet; // 如果你想保持原始顺序,可以使用std::vector的reserve和push_back
// 或者返回一个范围引用:return vec.begin(), vec.end();
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 4, 5};
std::vector<int> result = removeDuplicates(vec);
// 打印去重后的结果
for (int num : result) {
std::cout << num << " ";
}
return 0;
}
```
在这个例子中,我们创建了一个`std::unordered_set`,它自动处理了唯一值的问题。如果元素不在集合中,我们就将其插入并保留下来。最后返回的是一个无重复元素的新向量。
阅读全文