# Remove duplicates from an unsorted array using STL in C++

Given an unsorted array, the task is to remove the duplicate elements from the array using STL in C++

Examples:

```Input: arr[] = {1, 2, 5, 1, 7, 2, 4, 2}
Output: arr[] = {1, 2, 4, 5, 7}
Input: arr[] = {1, 2, 4, 3, 5, 4, 4, 2, 5}
Output: arr[] = {1, 2, 3, 4, 5}
```

Approach:

The duplicates of the array can be removed using the unique() function provided in STL.

Below is the implementation of the above approach.

CPP

``````#include <bits/stdc++.h>
using namespace std;

// Function to remove duplicate elements
void remDup(int arr[], int n)
{

// Initialise a vector
// to store the array values
// and an iterator
// to traverse this vector
vector<int> v(arr, arr + n);
vector<int>::iterator it;

// sorting vector
sort(v.begin(), v.end());

// 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, 5, 1, 7, 2, 4, 2 };

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 remDup()
remDup(arr, n);

return 0;
} ``````
Output

```Before removing duplicates:
1 2 5 1 7 2 4 2
After removing duplicates:
1 2 4 5 7

```

Complexity:

Time complexity: O(nlog(n)) for sorting.

Space complexity: O(n) for storing the array into the vector.

Whether you're preparing for your first job interview or aiming to upskill in this ever-evolving tech landscape, GeeksforGeeks Courses are your key to success. We provide top-quality content at affordable prices, all geared towards accelerating your growth in a time-bound manner. Join the millions we've already empowered, and we're here to do the same for you. Don't miss out - check it out now!

Previous
Next