用C++删除有序数组中的重复项的代码
时间: 2024-09-22 20:07:40 浏览: 48
在C++中,可以使用`std::unique`函数配合自定义比较函数来删除数组中的重复元素,因为这个函数可以保留数组中的第一次出现的元素,并自动移除后续的相等元素。以下是一个简单的示例,假设我们有一个整数数组:
```cpp
#include <algorithm> // 包含 unique 函数
#include <iostream>
// 自定义比较函数,用于判断两个元素是否相等
bool compare(int a, int b) {
return a == b;
}
void removeDuplicates(int arr[], int size) {
if (size > 0) {
std::unique(arr, arr + size, compare); // 使用自定义比较函数
size = std::distance(arr, std::unique(arr, arr + size)); // 更新大小到新结束位置
for (int i = 0; i < size; ++i) {
std::cout << arr[i] << " ";
}
} else {
std::cout << "Array is empty.";
}
}
int main() {
int arr[] = {1, 2, 2, 3, 4, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]);
removeDuplicates(arr, size);
阅读全文