cpp数组的去重函数
时间: 2024-09-08 15:01:09 浏览: 46
在C++中,去重数组通常意味着要删除数组中的重复元素,使得数组中每个元素都是唯一的。这可以通过多种方法实现,比如使用STL中的`std::sort`和`std::unique`函数,或者通过遍历数组并使用额外的容器来辅助去重。下面是一个使用STL函数去重的示例代码:
```cpp
#include <iostream>
#include <algorithm>
#include <vector>
std::vector<int> removeDuplicates(std::vector<int>& nums) {
if (nums.empty()) return nums;
// 首先对数组进行排序
std::sort(nums.begin(), nums.end());
// 使用unique函数去除连续的重复元素
auto last = std::unique(nums.begin(), nums.end());
// 删除unique之后的所有重复元素
nums.erase(last, nums.end());
return nums;
}
int main() {
std::vector<int> nums = {1, 3, 2, 2, 3, 4, 4, 5, 5};
std::vector<int> uniqueNums = removeDuplicates(nums);
for (int num : uniqueNums) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
```
在这个例子中,`removeDuplicates`函数首先对数组进行排序,然后使用`std::unique`来将数组中的重复元素移到数组的末尾,最后通过`erase`方法删除这些重复元素。返回的`std::vector<int>`只包含去重后的元素。
阅读全文