Given an array, the task is to remove the duplicate elements from the array using STL in C++ Examples:
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}
Approach: This can be done using set in standard template library. Set type variable in STL automatically removes duplicating element when we store the element in it. Below is the implementation of the above approach:
CPP
#include <bits/stdc++.h>
using namespace std;
void removeDuplicates( int arr[], int n)
{
int i;
set< int > s;
for (i = 0; i < n; i++) {
s.insert(arr[i]);
}
set< int >::iterator it;
cout << "\nAfter removing duplicates:\n" ;
for (it = s.begin(); it != s.end(); ++it)
cout << *it << ", " ;
cout << '\n' ;
}
int main()
{
int arr[] = { 4, 2, 3, 3, 2, 4 };
int n = sizeof (arr) / sizeof (arr[0]);
cout << "\nBefore removing duplicates:\n" ;
for ( int i = 0; i < n; i++)
cout << arr[i] << " " ;
removeDuplicates(arr, n);
return 0;
}
|
Output:Before removing duplicates:
4 2 3 3 2 4
After removing duplicates:
2, 3, 4,
Time Complexity : O(NlogN)
Space Complexity : O(N)