c++怎么去掉相同的数据
时间: 2024-10-08 20:08:24 浏览: 20
QML与C++交互,解压后路径去掉中文.rar
3星 · 编辑精心推荐
在C++中,要去掉容器(如vector、set、map等)中的重复数据,可以采取以下几种方法:
1. **使用`std::set`** 或 **`std::unordered_set`**:这两个容器本身就是无序的,内部会自动去除重复元素。例如:
```cpp
std::set<int> uniqueInts;
uniqueInts.insert({1, 2, 3, 4, 5}); // 会自动去重
```
2. **使用`std::unique` 函数**:如果想要保留容器原始的顺序,可以先将范围复制到另一个容器,然后使用`std::unique` 和 `erase` 操作。例如,对于一个已排序的容器:
```cpp
std::vector<int> vec = {1, 2, 2, 3, 3, 3};
vec.erase(std::unique(vec.begin(), vec.end()), vec.end());
```
这里`std::unique`会找到连续的重复部分,并返回一个新的结束位置。
3. **自定义函数或算法**:如果你的数据结构复杂,或者需要更细致的去重规则,你可以创建一个自定义函数,利用迭代器处理,或者借助STL算法如`remove_if`和`partition_point`。
阅读全文