给定一个已排序的数组,任务是使用C++中的STL从数组中删除重复的元素
例子:
Input: arr[] = {2, 2, 2, 2, 2}
Output: arr[] = {2}
Input: arr[] = {1, 2, 2, 3, 4, 4, 4, 5, 5}
Output: arr[] = {1, 2, 3, 4, 5}
方法:
可以使用STL中提供的unique()函数删除数组的重复项。
下面是上述方法的实现。
#include
using namespace std;
// Function to remove duplicate elements
void removeDuplicates(int arr[], int n)
{
// Initialise a vector
// to store the array values
// and an iterator
// to traverse this vector
vector v(arr, arr + n);
vector::iterator it;
// using unique() method to remove duplicates
it = unique(v.begin(), v.end());
// resize the new vector
v.resize(distance(v.begin(), it));
// Print the array with duplicates removed
cout << "\nAfter removing duplicates:\n";
for (it = v.begin(); it != v.end(); ++it)
cout << *it << ", ";
cout << '\n';
}
// Driver code
int main()
{
int arr[] = { 1, 2, 2, 3, 4, 4, 4, 5, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
// Print array
cout << "\nBefore removing duplicates:\n";
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
// call removeDuplicates()
removeDuplicates(arr, n);
return 0;
}
输出:
Before removing duplicates:
1 2 2 3 4 4 4 5 5
After removing duplicates:
1, 2, 3, 4, 5,
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。