Open In App

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

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Share
Report issue
Report

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.


Last Updated : 27 Sep, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads