c++unique函数
时间: 2023-08-13 07:59:27 浏览: 54
C++的`std::unique`函数是标准库中的一个算法函数,用于在容器中移除相邻的重复元素,只保留其中一个副本。它可以应用于任何支持双向迭代器的容器,如`std::vector`、`std::list`等。
`std::unique`函数的声明如下:
```cpp
template <class ForwardIt>
ForwardIt unique(ForwardIt first, ForwardIt last);
```
其中`first`和`last`是迭代器,表示容器中要进行处理的元素范围。该函数返回一个指向新的范围末尾的迭代器,移除的重复元素将被移到容器末尾并被覆盖。
下面是一个示例代码,展示了如何使用`std::unique`函数:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 2, 3, 3, 3, 4, 5, 5};
// 移除相邻的重复元素
auto it = std::unique(nums.begin(), nums.end());
// 调整容器大小,移除被覆盖的元素
nums.erase(it, nums.end());
// 输出结果
for (int num : nums) {
std::cout << num << " ";
}
return 0;
}
```
运行以上代码,输出结果为:
```
1 2 3 4 5
```
注意,`std::unique`函数只能移除相邻的重复元素,如果容器中存在非相邻的重复元素,需要先进行排序,再使用`std::unique`函数进行去重。