C++ multimap::size() Function



The C++ std::multimap::size() function is used to return the number of elements in the multimap. A multimap is an associative container that stores elements in key-value pairs, allowing multiple elements with the same key. This function provides a quick way to determine the total count of these elements. The time complexity of this function is constant i.e. O(1).

Syntax

Following is the syntax for std::multimap::size() function.

size_type size() const noexcept;

Parameters

It does not accept any parameter.

Return value

This function returns the number of elements in the container.

Example

Let's look at the following example, where we are going to demonstrate the usage of size() function.

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "apple"});
    a.insert({2, "banana"});
    std::cout << "Size of the multimap is: " << a.size() << std::endl;
    return 0;
}

Output

Following is the output of the above code −

Size of the multimap is: 2

Example

Consider another scenario, where we are getting the initial size, then later we insert some elements and get the size of the multimap.

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "TP"});
    std::cout << "Initial size: " << a.size() << std::endl;
    a.insert({2, "Tutorix"});
    a.insert({3, "TutorialsPoint"});
    std::cout << "Size after insertion: " << a.size() << std::endl;
    return 0;
}

Output

Output of the above code is as follows −

Initial size: 1
Size after insertion: 3

Example

In the following, we are going to use the size() function to get the size of the multimap, then we apply the equal_range() function to find all the elements with the key, and the distance between the iterators gives the count of the elements with that key.

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "Hi"});
    a.insert({2, "Hello"});
    a.insert({2, "Vanakam"});
    std::cout << "Size of the multimap: " << a.size() << std::endl;
    auto x = a.equal_range(2);
    int count = std::distance(x.first, x.second);
    std::cout << "Elements with given key : " << count << std::endl;
    return 0;
}

Output

If we run the above code it will generate the following output −

Size of the multimap: 3
Elements with given key : 2

Example

Following is an example where we are going to initialize the multimap with 3 elements, with key 1 appearing twice, then erase the elements with key 1 and observe the output.

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "AB"});
    a.insert({1, "BC"});
    a.insert({2, "CD"});
    std::cout << "Size before erasing: " << a.size() << std::endl;
    a.erase(1);
    std::cout << "Size after erasing given key: " << a.size() << std::endl;
    return 0;
}

Output

Let us compile and run the above program, this will produce the following result −

Size before erasing: 3
Size after erasing given key: 1
multimap.htm
Advertisements