unordered_map equal_range in C++ Last Updated : 27 Nov, 2018 Comments Improve Suggest changes Like Article Like Report The unordered_map::equal_range() is an inbuilt function in C++ STL which is used to return the bounds of a range that includes all the elements in the container with a key that compares equal to k. The unordered_map containers are the container where keys are unique, the range will include one element at most. The range is defined by two iterators, The first one pointing to the first element of the range. The second one pointing past the last element of the range. Parameters: This function accepts single parameter key which is used to hold the value to be compared. Return Value: It returns a pair which contains a pair of iterators defining the wanted range. Where its members are pair::first and pair::second. The first one is an iterator to the lower bound of the range and the second one is an iterator to its upper bound. The elements in the range are those between these two iterators, including first pair, but not second. Below programs illustrates the unordered_map::equal_range() function in C++ STL: Example 1: CPP // C++ program to implement // unordered_map::equal_range() function #include <iostream> #include <unordered_map> using namespace std; // main program int main() { unordered_map <int, int> map = { { 1, 3 }, { 1, 2 }, { 3, 1 }, { 2, 3 } }; for (int j = 1; j <= 3; j++) { auto range = map.equal_range(j); //'auto' is a keyword for (auto i = range.first; i != range.second; i++) { // iterates first to last cout << "first : " << i->first; cout << "\nsecond : " << i->second << endl << endl; } } } Output: first : 1 second : 3 first : 2 second : 3 first : 3 second : 1 Program 2: CPP // C++ program to search 'unordered map' container #include <iostream> #include <unordered_map> using namespace std; // Rename 'unordered_map<int, char>' as 'gfg' typedef unordered_map<char, char> gfg; int main() { // 'g' is object gfg g; // Container values // Contents are look like [a, b] [c, d] [e, f] g.insert(gfg::value_type('a', 'b')); g.insert(gfg::value_type('b', 'd')); g.insert(gfg::value_type('e', 'f')); // Look into the syntax part above // here 'f' is key pair<gfg::iterator, gfg::iterator> p1 = g.equal_range('f'); // 'f' is not exits, so no output for 'f' cout << "search for 'f' :"; for (; p1.first != p1.second; ++p1.first) { cout << p1.first->first << ", " << p1.first->second << endl; } // Successful search // Here 'a' is key p1 = g.equal_range('a'); // 'a' is exits, so it searched successfully cout << "\nsearch for 'a' : ["; for (; p1.first != p1.second; ++p1.first) { cout << p1.first->first << ", " << p1.first->second << "]"; } return 0; } Output: search for 'f' : search for 'a' : [a, b] Complexity: Average case: Linear in the number of elements with the key k, which is constant. worst case: Linear in the size of the container. Comment More infoAdvertise with us Next Article unordered_map equal_range in C++ S SoumikMondal Follow Improve Article Tags : C++ Technical Scripter 2018 STL cpp-unordered_map cpp-unordered_map-functions +1 More Practice Tags : CPPSTL Similar Reads unordered_set equal_range in C++ STL 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 2 min read map equal_range() in C++ STL The map::equal_range() is a built-in function in C++ STL which returns a pair of iterators. The pair refers to the bounds of a range that includes all the elements in the container which have a key equivalent to k. Since the map container only contains unique key, hence the first iterator in the pai 2 min read unordered_multimap equal_range() function in C++ STL unordered_multimap::equal_range() is a built-in function in C++ STL which returns the range in which all the element's key is equal to a key. It returns a pair of iterators where the first is an iterator pointing to the lower bound of the range and second is an iterator pointing to the upper bound o 3 min read unordered_map erase in C++ STL in C++, std::unordered_map::erase() is a built-in function used remove elements from the unordered_map container. It is a member function of std::unordered_map class defined inside <unordered_map> header file.Example:C++// C++ Program to demonstrate the use of // unordered_map::erase() #includ 3 min read unordered_map cend in C++ STL The unordered_map::cend() is a built-in function in C++ STL which returns an iterator pointing to the position past the end element in the container or in one of its bucket. In an unordered_map object, there is no guarantee that which specific element is considered its first element. But all the ele 3 min read Like