unordered_multimap在C++ STL中的rehash()函数
unordered_multimap::rehash(N) 是C++ STL中的内置函数,它将容器中的桶数设置为N或更多。如果N大于容器中当前的桶数(bucket_count),则会强制重新散列(rehash)。
新的桶数可以等于或大于N。如果n低于容器中当前的桶数(bucket_count),则该函数可能对桶数没有影响,也可能不强制重新散列。
重新散列是哈希表的重建:容器中的所有元素按照它们的哈希值重排到新的桶集合中。这可能会改变容器中元素的迭代顺序,虽然具有等效键(key)的元素的相对顺序得到保留。 当其负载因子(load factor)在操作中即将超过其max_load_factor时,容器会自动执行重新散列。通过调用rehash来为哈希表保留一定数量的桶(minimum amount of buckets),我们可以避免容器扩展引起多次重新散列的情况.
语法:
参数: 该函数接受一个必选参数 N ,它指定容器哈希表的最小桶数。
返回值: 该函数不返回任何值。
下面的程序说明了上面的函数:
程序1:
程序2: