📅  最后修改于: 2023-12-03 15:06:52.197000             🧑  作者: Mango
在C ++中,可以使用STL算法和容器来轻松从排序的数组中删除重复项。这可以通过以下步骤完成:
包括头文件<algorithm>
和<vector>
#include <algorithm>
#include <vector>
创建排序的数组
int arr[] = { 1, 2, 2, 3, 4, 4, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
将数组存储在向量中以便更方便地进行操作
std::vector<int> vec(arr, arr + n);
使用STL的unique()
函数来删除重复项
auto it = std::unique(vec.begin(), vec.end());
vec.resize(std::distance(vec.begin(), it));
这将返回一个指向新向量的末尾的迭代器,并将向量的大小更改为不包含重复项的数量。
打印新向量,以检查删除的重复项
for (auto i : vec) {
std::cout << i << " ";
}
输出:1 2 3 4 5
完整代码:
#include <algorithm>
#include <iostream>
#include <vector>
int main()
{
int arr[] = { 1, 2, 2, 3, 4, 4, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
std::vector<int> vec(arr, arr + n);
auto it = std::unique(vec.begin(), vec.end());
vec.resize(std::distance(vec.begin(), it));
for (auto i : vec) {
std::cout << i << " ";
}
std::cout << "\n";
return 0;
}
以上就是使用C ++中的STL从排序的数组中删除重复项的方法。使用STL,我们可以轻松地完成这个任务,而不必编写复杂的代码。