用c++编写int delelem(int a[],int n)函数,对数组a中n个数据删除重复数据,只保留一个。对只出现一次的数据则全部保留。函数返回数组中剩余元素的个数。
时间: 2024-10-23 21:15:21 浏览: 42
在C++中,你可以通过创建一个新数组并跟踪每个元素是否出现过,然后将未出现过的元素复制到新数组中,最后返回新数组的长度来实现这个功能。下面是一个简单的示例函数`delelem`:
```cpp
#include <vector>
using namespace std;
size_t delelem(int a[], int n) {
vector<int> unique_elements; // 存储唯一元素的新容器
for (int i = 0; i < n; ++i) {
if (unique_elements.end() == find(unique_elements.begin(), unique_elements.end(), a[i])) {
unique_elements.push_back(a[i]); // 如果元素未出现在新容器中,则添加
}
}
return unique_elements.size(); // 返回新容器的大小,即去重后的元素个数
}
// 示例:
int arr[] = {1, 2, 3, 2, 4, 5, 6, 3};
size_t result = delelem(arr, sizeof(arr) / sizeof(arr[0]));
```
在这个函数中,我们使用了`std::find`来查找元素在已存在的独特元素列表中是否存在,如果不存在,我们就将其添加到新列表中。注意,这种方法会改变原数组`a`,因为它直接用于比较。如果你想保持原始数组不变,可以考虑使用其他数据结构,如`set`。
阅读全文