c++ array 去重
时间: 2024-09-25 16:05:55 浏览: 46
在C++中,数组本身并不支持直接去重功能,因为数组是一种固定大小的连续内存块,元素之间是顺序存储的,通常无法做到动态地检查并移除重复项。然而,你可以通过创建另一个数据结构(如vector、set或unordered_set)来辅助实现去重。
下面是一个简单的例子,演示如何使用`std::vector`去重:
```cpp
#include <iostream>
#include <vector>
void removeDuplicates(int arr[], int n) {
std::vector<int> unique_vector;
for (int i = 0; i < n; ++i) {
if (unique_vector.find(arr[i]) == unique_vector.end()) { // 如果元素未存在于集合中
unique_vector.push_back(arr[i]); // 添加到集合
}
}
// 将去重后的元素复制回原数组
for (size_t i = 0, j = 0; i < unique_vector.size(); ++i) {
arr[j++] = unique_vector[i];
}
arr[n] = 0; // 或者如果需要,设置最后一个元素为0表示数组结束
}
int main() {
int arr[] = {1, 2, 3, 4, 4, 5, 6, 7, 3};
int n = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, n);
for (int i : arr) {
std::cout << i << " ";
}
return 0;
}
```
当你运行这个程序时,会得到去重后的数组:1 2 3 4 5 6 7。
阅读全文