unordered_multimap reserve() function in C++ STL Last Updated : 11 Jul, 2025 Summarize Comments Improve Suggest changes Share Like Article Like Report The unordered_multimap::reserve() is a built-in function in C++ STL which sets the number of buckets in the container (bucket_count) to the most appropriate number so that it contains at least n elements. If n is greater than the current bucket_count multiplied by the max_load_factor, the container's bucket_count is increased and a rehash is forced. By calling reserve with the size that was expected for the unordered_multimap container, the multiple rehashes can be avoided. The multiple rehashes are those that are produced due to increase in container size which optimizes the size of the hash table. If n is lower than that, the function may have no effect. Syntax: unordered_multimap_name.reserve(N) Parameters: The function accepts a single mandatory parameter N which specifies the number of elements requested as the minimum capacity. Return Value: The function does not return anything. Below programs illustrates the above function: Program 1: CPP // C++ program to illustrate the // unordered_multimap::reserve() #include <bits/stdc++.h> using namespace std; int main() { // declaration unordered_multimap<int, int> sample1, sample2; // the sample1 size is reserved for // the bucket to contain a minimum of // one elements sample1.reserve(1); // inserts key and element // in sample1 sample1.insert({ 10, 100 }); sample1.insert({ 50, 500 }); // inserts key and element // in sample1 // the sample1 size is reserved for // the bucket to contain a minimum of // three elements sample2.reserve(3); sample2.insert({ 20, 200 }); sample2.insert({ 30, 300 }); sample2.insert({ 30, 150 }); cout << "The size of Sample1 is: " << sample1.size(); cout << "\nKey and Elements of Sample1 are:"; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } cout << "\n\nThe size of Sample2 is: " << sample2.size(); cout << "\nKey and Elements of Sample2 are:"; for (auto it = sample2.begin(); it != sample2.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } return 0; } Output: The size of Sample1 is: 2 Key and Elements of Sample1 are:{50, 500} {10, 100} The size of Sample2 is: 3 Key and Elements of Sample2 are:{30, 150} {30, 300} {20, 200} Program 2: CPP // C++ program to illustrate the // unordered_multimap::reserve() #include <bits/stdc++.h> using namespace std; int main() { // declaration unordered_multimap<char, char> sample1, sample2; // the sample1 size is reserved for // the bucket to contain a minimum of // one elements sample1.reserve(1); // inserts key and element // in sample1 sample1.insert({ 'a', 'A' }); sample1.insert({ 'g', 'G' }); // inserts key and element // in sample1 // the sample1 size is reserved for // the bucket to contain a minimum of // three elements sample2.reserve(3); sample2.insert({ 'b', 'B' }); sample2.insert({ 'c', 'C' }); sample2.insert({ 'd', 'D' }); cout << "The size of Sample1 is: " << sample1.size(); cout << "\nKey and Elements of Sample1 are:"; for (auto it = sample1.begin(); it != sample1.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } cout << "\n\nThe size of Sample2 is: " << sample2.size(); cout << "\nKey and Elements of Sample2 are:"; for (auto it = sample2.begin(); it != sample2.end(); it++) { cout << "{" << it->first << ", " << it->second << "} "; } return 0; } Output: The size of Sample1 is: 2 Key and Elements of Sample1 are:{g, G} {a, A} The size of Sample2 is: 3 Key and Elements of Sample2 are:{d, D} {c, C} {b, B} Comment More infoAdvertise with us Next Article unordered_multimap insert() in C++ STL G gopaldave Follow Improve Article Tags : Misc C++ STL CPP-Functions cpp-unordered_multimap +1 More Practice Tags : CPPMiscSTL Similar Reads Unordered Multimap in C++ STL In C++, the unordered_multimap is an unordered associative container that stores data in the form of key-value pairs. It is similar to unordered map, but it allows multiple elements with the same key. It provides fast insertion, deletion and search operations in O(1) time by using hashing.Example:C+ 7 min read unordered_multimap begin() and end() function in C++ STL The unordered_multimap::begin() is a built-in function in C++ STL that returns an iterator pointing to the first element in the container or to the first element in one of its buckets. Syntax: unordered_multimap_name.begin(n) Parameters: The function accepts one parameter. If a parameter is passed, 5 min read unordered_multimap size() function in C++ STL The unordered_multimap::size() is a built-in function in C++ STL which returns the size of the unordered_multimap. It denotes the number of elements in that container. Syntax: unordered_multimap_name.size() Parameters: The function does not accept any parameters. Return Value: It returns an integral 3 min read unordered_multimap empty() function in C++ STL The unordered_multimap::empty() is a built-in function in C++ STL which returns a boolean value. It returns true if the unordered_multimap container is empty. Otherwise, it returns false. Syntax: unordered_multimap_name.empty() Parameters: The function does not accept any parameter. Return Value: It 2 min read unordered_multimap insert() in C++ STL The function std::unordered_multimap::insert() is a built-in function in C++ STL that extends container by inserting new element in unordered_multimap. This function increases container size by one. The insert() function can be used to insert a single key-value pair, a complete unordered_map, initia 2 min read unordered_multimap emplace() function in C++ STL The unordered_multimap::emplace() is a built-in function in C++ STL which inserts a new {key, element} in the unordered_multimap container. The insertion is done automatically at the position according to the container's criterion. It increases the size of the container by one. Syntax: unordered_mul 2 min read unordered_multimap find() function in C++ STL The unordered_multimap::find() is a built-in function in C++ STL which returns an iterator which points to one of the elements which has the key k. If the container does not contain any element with key k, then it returns an iterator which points to the position which is past the last element in the 3 min read unordered_multimap count() function in C++ STL The unordered_multimap::count() is a built-in function in C++ STL that returns the number of elements in the container whose key is equal to the key passed in the parameter. Syntax: unordered_multimap_name.count(key) Parameters: The function accepts a single mandatory parameter key that specifies th 2 min read unordered_multimap clear() function in C++ STL The unordered_multimap::clear() is a built-in function in C++ STL which clears the contents of the unordered_multimap container. The final size of the container after the call of the function is 0. Syntax: unordered_multimap_name.clear() Parameters: The function does not accept any parameter. Return 2 min read unordered_multimap swap() function in C++ STL The unordered_multimap::swap() is a built-in function in C++ STL which swaps the contents of two unordered_multimap containers. The sizes can differ of both the containers. Syntax: unordered_multimap_name1.swap(unordered_multimap_name2) Parameters: The function accepts a single mandatory parameter u 3 min read Like