Open In App

unordered_set equal_range in C++ STL

Last Updated : 05 Jun, 2023
Comments
Improve
Suggest changes
Like Article
Like
Report

equal_range() in general returns range that includes all elements equal to given value. For unordered_set where all keys are distinct, the returned range contains at-most one element. 

Syntax

 setname.equal_range(key name)

Arguments It takes the key to be searched as parameter. 

Return Value It returns two iteraters---- lower and upper bound of the range that contains the key. 

Example 

CPP
// C++ program to illustrate the 
// unordered_set::equal_range function 
#include <iostream> 
#include <unordered_set> 
using namespace std; 
int main() 
{ 
    // declaration 
    unordered_set<int> sample; 

    // Insert some values 
    sample.insert({ 20, 30, 40 }); 

    // Test the equal_range function for 
    // a given key if it does exists 
    auto range1 = sample.equal_range(20); 
    if (range1.first != sample.end()) { 
        for (; range1.first != range1.second; ++range1.first) 
            cout << *range1.first << endl; 
    } 
    else
        cout << "Element does not exist"; 
    return 0; 
} 

Output

20
CPP
// C++ program to illustrate the 
// unordered_set::equal_range function 
#include <iostream> 
#include <unordered_set> 
using namespace std; 
int main() 
{ 

    // declaration 
    unordered_set<int> sample; 

    // Insert some values 
    sample.insert({ 20, 30, 40 }); 

    // Test the equal_range function 
    // for a given key if it does not exist 
    auto range1 = sample.equal_range(60); 
    if (range1.first != sample.end()) { 
        for (; range1.first != range1.second; ++range1.first) 
            cout << *range1.first << endl; 
    } 
    else
        cout << "Element does not exist"; 
    return 0; 
} 

Output

Element does not exist

Time complexity: O(n) 


Next Article
Practice Tags :

Similar Reads