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)