The unordered_multiset::bucket_size() is a built-in function in C++ STL which returns the number of elements in the bucket which has the element val. It will always be lower than the bucket_count. The number of elements in a bucket influences the time it takes to access a particular element in the bucket
Syntax:
unordered_multiset_name.bucket_size(val)
Parameters: The function accepts a parameter val which specifies the element whose size of the bucket is to be returned.
Return Value: It returns an unsigned integral type which denotes the number of elements in the bucket which has the element val.
Below programs illustrate the above function:
Program 1:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_multiset< int > sample;
sample.insert(11);
sample.insert(11);
sample.insert(11);
sample.insert(12);
sample.insert(13);
sample.insert(13);
sample.insert(14);
for ( auto it = sample.begin(); it != sample.end(); it++) {
cout << "The bucket size in which " << *it
<< " is " << sample.bucket_size(*it) << endl;
}
return 0;
}
|
Output:
The bucket size in which 14 is 1
The bucket size in which 11 is 3
The bucket size in which 11 is 3
The bucket size in which 11 is 3
The bucket size in which 12 is 1
The bucket size in which 13 is 2
The bucket size in which 13 is 2
Program 2:
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_multiset< int > sample;
sample.insert(1);
sample.insert(1);
sample.insert(1);
sample.insert(2);
sample.insert(3);
sample.insert(4);
sample.insert(3);
for ( auto it = sample.begin(); it != sample.end(); it++) {
cout << "The bucket size in which " << *it
<< " is " << sample.bucket_size(*it) << endl;
}
return 0;
}
|
Output:
The bucket size in which 1 is 3
The bucket size in which 1 is 3
The bucket size in which 1 is 3
The bucket size in which 2 is 1
The bucket size in which 3 is 2
The bucket size in which 3 is 2
The bucket size in which 4 is 1