📅  最后修改于: 2023-12-03 14:39:50.408000             🧑  作者: Mango
std::unique
是C++标准库中的一个函数,用于移除容器中相邻的重复元素并返回尾部迭代器,从而在其中生成一个新的子序列。该函数只针对已排序的容器,并可以接受操作符或函数作为参数来决定元素是否相等。
template< class ForwardIt >
ForwardIt unique( ForwardIt first, ForwardIt last );
first
: 容器的迭代器,表示要处理的第一个元素。last
: 容器的迭代器,表示要处理的最后一个元素的下一位置。函数将返回一个迭代器,指向容器中新生成子序列的尾部的下一位置。
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> vec1 {1, 1, 2, 2, 3, 4, 5, 5};
// 使用std::unique移除相邻的重复元素
auto end = std::unique(vec1.begin(), vec1.end());
// 输出新的子序列
std::cout << "New sequence: ";
for (auto it = vec1.begin(); it != end; ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
该程序使用std::unique函数在给定的vector中移除相邻的重复元素,并输出了新的子序列:1 2 3 4 5
。
std::unique(vec1.begin(), vec1.end(), [](int x, int y){ return x == y; })
来移除相等的元素。