在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)
极客教程