Open In App
Related Articles

list unique() in C++ STL

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

list::unique() is an inbuilt function in C++ STL which removes all duplicate consecutive elements from the list. It works only on sorted list.

Syntax: 

list_name.unique(BinaryPredicate name)

Parameters:  The function accepts a single and optional parameter which is a binary predicate that returns true if the elements should be treated as equal. It has following syntax: 

bool name(data_type a, data_type b);

Return value: This function does not return anything.

Below is the implementation of above function: 

CPP

// C++ program to illustrate the
// unique() function
#include <bits/stdc++.h>
using namespace std;
 
// Function for binary_predicate
bool compare(double a, double b)
{
    return ((int)a == (int)b);
}
 
// Driver code
int main()
{
    list<double> list = { 2.55, 3.15, 4.16, 4.16,
                          4.77, 12.65, 12.65, 13.59 };
 
    cout << "List is: ";
       
    //sort the list
    list.sort();
 
    // unique operation on list with no parameters
    list.unique();
 
    // starts from the first element
    // of the list to the last
    for (auto it = list.begin(); it != list.end(); ++it)
        cout << *it << " ";
 
    // unique operation on list with parameter
    list.unique(compare);
 
    cout << "\nList is: ";
 
    // starts from the first element
    // of the list to the last
    for (auto it = list.begin(); it != list.end(); ++it)
        cout << *it << " ";
 
    return 0;
}

                    

Output
List is: 2.55 3.15 4.16 4.77 12.65 13.59 
List is: 2.55 3.15 4.16 12.65 13.59 

Time Complexity – O(nlogn) due to sorting of list

Auxiliary Space: O(1)



Last Updated : 13 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads