C++ unordered_multimap rehash() 函数

2024 年 8 月 29 日 | 阅读 3 分钟

C++ 中的 unordered_multimap rehash(N) 函数将容器中的元素数量增加到 n 或更多。如果 n 大于容器中的元素数量,则需要重新哈希。新的元素计数可能等于或大于 n。如果 n 小于容器中当前元素数量,则该函数的结果可能不会影响桶计数,并且不需要 rehash 函数。Rehash() 不返回任何内容,并接受 n 作为参数,该参数确定哈希表框架的最小可能桶数。

重新哈希 (rehash) 是指哈希表的重建。容器中的所有组件都会根据其哈希值重新组织到一组新的桶中。这可能会改变容器内元素的迭代顺序,但具有相同键的元素的相对顺序会保留。当容器的负载因子在操作中超过其 max_load_factor 时,容器的内存会自动执行重新哈希。通过执行重新哈希以在哈希表中保留特定的最小桶数,我们可以防止因容器扩展而导致的多次重新哈希。

语法

它具有以下语法:

参数:该函数接收一个重要的参数 N,它确定容器哈希表的最小桶数。

返回值:函数不返回任何内容。

算法

示例 1

让我们看一个示例来演示 C++ 中 unordered_multimap rehash(N) 函数的使用。

输出

The size of the sample s1 is: 2
key value of sample s1 is:{40, 800} {20, 300} 

The size of the sample s2 is:3
key value of sample s1 is:{200, 350} {20, 700} {40, 400} 

示例 2

让我们再看一个示例来演示 C++ 中 unordered_multimap rehash(N) 函数的使用。

输出

The sample s2 size is: 2
The values of sample s2:{f, F} {b, B} 
The sample s2 size is :3
The values of sample s2::{l, L} {m, M} {d, D}