c++如何去除数组中重复出现的元素的函数
时间: 2024-12-19 10:25:53 浏览: 13
在 C++ 中,可以使用多种方法去除数组中重复的元素,通常我们会选择使用容器如 `std::vector` 或 `std::set` 来帮助处理这个问题,因为它们天然就不允许重复元素。如果你想保留原始数组并且不改变它的顺序,可以遍历数组并创建一个新的数组只包含独特的元素。这里有一个简单的示例:
```cpp
#include <iostream>
#include <unordered_set>
// 去除数组中重复元素(保持原序)
void removeDuplicates(int arr[], int n) {
std::unordered_set<int> uniqueSet;
for (int i = 0; i < n; ++i) {
if (uniqueSet.find(arr[i]) == uniqueSet.end()) {
// 如果元素不在集合中,则添加并移动到新位置
std::cout << arr[i] << " ";
uniqueSet.insert(arr[i]);
}
}
}
int main() {
int arr[] = {1, 2, 3, 4, 2, 5, 6, 1};
int n = sizeof(arr) / sizeof(arr[0]);
std::cout << "Original array with duplicates: ";
for (int i : arr) {
std::cout << i << " ";
}
removeDuplicates(arr, n);
std::cout << "\nArray after removing duplicates: ";
return 0;
}
```
运行上述程序,会输出:
```
Original array with duplicates: 1 2 3 4 2 5 6 1
Array after removing duplicates: 1 2 3 4 5 6
```
阅读全文