在C++ STL中使用unordered_set bucket_size()
unordered_set ::bucket_size()函数是C++ STL中的内置函数,其返回unordered_set容器中特定bucket中元素的总数。
bucket 是unordered_set内部哈希表中的一个槽,用于存储元素。
注意: unordered_set中的桶从0到n-1进行编号,其中n是桶的总数。
语法 :
unordered_set_.bucket_size(n);
参数: 此函数接受一个必选参数 n ,此参数表示需要查找其元素总数的bucket号。
返回值: 此函数将返回存储在bucket n 中的元素数。 下面的程序说明了unordered_set::bucket_size()函数:
程序 1:
// CPP程序,说明
// unordered_set::bucket_size()函数
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<int> sampleSet;
// 存储桶的数量
int bucketCount;
// 插入元素
sampleSet.insert(5);
sampleSet.insert(10);
sampleSet.insert(15);
sampleSet.insert(20);
sampleSet.insert(25);
bucketCount = sampleSet.bucket_count();
// 显示桶的数量
cout << "sampleSet有 " << bucketCount << " 个桶\n";
// 显示编号为3的 bucket 中元素的个数
cout << "bucket编号3包含" << sampleSet.bucket_size(3) << "个元素";
return 0;
}
输出 :
sampleSet有7个桶
bucket编号3包含1个元素
程序 2:
// CPP程序,说明
// unordered_set::bucket_size()函数
#include <iostream>
#include <unordered_set>
using namespace std;
int main()
{
unordered_set<string> sampleSet;
// 存储桶的数量
int bucketCount;
// 插入元素
sampleSet.insert("Welcome");
sampleSet.insert("To");
sampleSet.insert("GeeksforGeeks");
sampleSet.insert("Computer Science Portal");
sampleSet.insert("For Geeks");
bucketCount = sampleSet.bucket_count();
// 显示桶的数量
cout << "sampleSet有 " << bucketCount << " 个桶\n";
// 显示编号为0的 bucket 中元素的个数
cout << "bucket编号0包含" << sampleSet.bucket_size(0) << "个元素";
return 0;
}
输出 :
sampleSet有7个桶
bucket编号0包含0个元素
时间复杂度: O(N)