📜  C++ STL中的unordered_set bucket_size()(1)

📅  最后修改于: 2023-12-03 15:13:56.901000             🧑  作者: Mango

unordered_set::bucket_size()函数介绍

unordered_set::bucket_size()函数是C++ STL中的哈希表函数之一,可以返回当前unordered_set中某个bucket中的元素数量。

语法

unordered_set::size_type bucket_size (size_type n) const;

参数
  1. n: 要查询元素数量的bucket的编号。
返回值

返回值为一个无符号整数,表示unordered_set中编号为n的bucket的元素数量。

例子

下面是一个使用unordered_set::bucket_size()函数的例子:

#include <iostream>
#include <unordered_set>

using namespace std;

int main()
{
    unordered_set<int> numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    cout << "Bucket size of bucket 0: " << numbers.bucket_size(0) << endl;
    cout << "Bucket size of bucket 1: " << numbers.bucket_size(1) << endl;
    cout << "Bucket size of bucket 2: " << numbers.bucket_size(2) << endl;
    return 0;
}

输出:

Bucket size of bucket 0: 5
Bucket size of bucket 1: 4
Bucket size of bucket 2: 1
注意事项
  • 由于哈希表的特性,不同unordered_set对象中的元素在bucket中的编号可能不同,所以需要先通过unordered_set::bucket_count()函数来获取当前unordered_set中bucket的数量,才能使用unordered_set::bucket_size()函数查询对应的bucket中的元素数量。
  • unordered_set::bucket_size()函数是一个常量函数,不会修改unordered_set中的元素。
总结

unordered_set::bucket_size()函数可以方便地查询unordered_set中编号为n的bucket中的元素数量,是一个比较实用的哈希表函数。