C++ Unordered_map 库 - rehash() 函数
描述
C++ 函数 std::unordered_map::rehash() 将容器中的桶数设置为 n 或更多。
如果 n 大于容器中的当前桶数,则强制进行重新哈希。 新的桶计数可以等于或大于 n。
如果 n 小于容器中的当前桶数,则该函数可能对桶数没有影响,并且可能不会强制重新哈希。
声明
以下是 std::unordered_map::rehash() 函数形式 std::unordered_map 头的声明。
C++11
void rehash(size_type n);
参数
n − 新的桶数
返回值
None
时间复杂度
线性,即平均情况下的 O(n)。
二次,即在最坏情况下为 O(n2)。
示例
以下示例显示了 std::unordered_map::rehash() 函数的用法。
#include <iostream> #include <unordered_map> using namespace std; int main (void) { unordered_map<char, int> mymap; cout << "Initial bucket_count: " << mymap.bucket_count() << endl; mymap.rehash(20); cout << "Current bucket_count: " << mymap.bucket_count() << endl; return 0; }
让我们编译并运行上面的程序,这将产生以下结果 −
Initial bucket_count: 11 Current bucket_count: 23