std::unique() 是一个算法函数,用于在范围内去除相邻的重复项。它需要接收两个迭代器参数,表示要处理的范围。
在使用 std::unique() 时,需要确保将范围内的元素进行排序,以便将相邻的重复项放在一起。然后,std::unique() 将返回一个指向新的逻辑结尾(不包括重复项)之后位置的迭代器,并且原始容器会被修改以擦除重复项。
以下是一个示例:
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> nums = {1, 2, 3, 3, 4, 4, 5};
// 对 nums 进行排序并去除相邻重复项
std::sort(nums.begin(), nums.end());
auto it = std::unique(nums.begin(), nums.end());
// 擦除多余的重复项
nums.erase(it, nums.end());
// 输出结果
for (const auto& num : nums) {
std::cout << num << " ";
}
return 0;
}
运行上述代码会输出:1 2 3 4 5,可以看到成功去除了重复项。请注意,在使用 std::unique() 前需要对容器中的元素进行排序。
内容由零声教学AI助手提供,问题来源于学员提问




