//删除数组中重复的元素
//思路:通过起始位置的元素,逐个和后面的元素进行比较,找到相同的元素后执行删除操作。没有发现执行第二次循环
void purge(int a[], int len)
{
int i = 0, j;
while (i<len) //从数组开始第一个位置开始循环
{
j = i + 1;
while (j<len)
{
if (a[i] == a[j])
{
Delete(); //此处执行删除操作
}
else
{
j++;
}
}
i++;
}
}
工程上的做法
#include <iostream>
#include <vector>
#include <algorithm>
int main()
{
std::vector<int> v = {1, 2, 2, 3, 4, 4, 4, 5};
// 先排序
std::sort(v.begin(), v.end());
// 去重
auto last = std::unique(v.begin(), v.end());
v.erase(last, v.end());
// 输出去重后的元素
for (auto i : v) {
std::cout << i << " ";
}
std::cout << std::endl;
return 0;
}