c++中的unique函数
时间: 2024-02-15 15:19:08 浏览: 58
C++中的`unique()`函数用于将重复的元素移动到容器的末尾并返回一个指向新的逻辑结尾的迭代器。它接受两个迭代器作为参数,表示容器的范围。
函数的用法如下:
```cpp
template <class ForwardIt>
ForwardIt unique(ForwardIt first, ForwardIt last);
```
`first`和`last`参数指定了容器中要进行操作的元素范围。`first`是要处理的第一个元素的迭代器,`last`是要处理的最后一个元素之后的迭代器。
`unique()`函数通过比较相邻元素来查找重复项,并将重复项移动到容器的末尾。最后,它返回一个指向新的逻辑结尾(即不重复元素序列的下一个元素)的迭代器。
注意,`unique()`函数只能移除相邻的重复元素,如果容器中存在非相邻的重复元素,需要先使用`std::sort()`函数对容器进行排序。
以下是一个示例代码,演示了如何使用`unique()`函数:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> numbers = {1, 2, 2, 3, 3, 3, 4, 4, 4, 4};
// 移除重复元素
auto it = std::unique(numbers.begin(), numbers.end());
// 调整容器的大小,使其仅包含不重复的元素
numbers.resize(std::distance(numbers.begin(), it));
// 输出不重复的元素
for (const auto& number : numbers) {
std::cout << number << " ";
}
std::cout << std::endl;
return 0;
}
```
输出结果为:
```
1 2 3 4
```
这个示例演示了如何使用`unique()`函数移除容器中的重复整数,并输出不重复的元素。
阅读全文