std::
unordered_multiset::rehash
公众成员函数 <unordered_set>
void reserve ( size_type n );
重组存储桶
将容器中的桶数(bucket_count)设置为最合适的,至少包含
n个元素。
如果
n大于当前的
bucket_count乘以
max_load_factor,
容器的
bucket_count将增加,并强制
rehash。
如果
n小于此值,则函数可能不起作用。
☲ 参数
-
n
-
作为最小容量要求的元素数量。
size_type是一种无符号整型。
☉ 返回值
none
☣ 示例
// unordered_multiset::reserve
#include <iostream>
#include <string>
#include <unordered_set>
int main ()
{
std::unordered_multiset<std::string> myums;
myums.reserve(5);
myums.insert("klingon");
myums.insert("human");
myums.insert("vulcan");
myums.insert("klingon");
myums.insert("klingon");
std::cout << "myums contains:";
for (const std::string& x: myums) std::cout << " " << x;
std::cout << std::endl;
return 0;
}
|
可能输出:
myums contains: human klingon klingon klingon vulcan
通过使用unordered_multiset容器的预期大小调用reserve,我们避免了容器大小的增加可能产生的多次重哈希,
并优化了哈希表的大小。
✥ 复杂度
一般情况:容器大小呈线性.最坏情况:容器大小的二次方。
☣ 迭代器的有效性
如果发生rehash,所有的迭代器都失效,但是对单个元素的引用和指针仍然有效。
如果没有实际的rehash,则不会发生任何更改。
🍄 另请参阅
unordered_multiset::bucket_count |
返回存储桶的数量(公众成员函数) |
unordered_multiset::size |
返回容量(公众成员函数) |
unordered_multiset::rehash |
设置存储桶数(公众成员函数) |
unordered_multiset::max_load_factor |
获取最大负载系数(公众成员函数) |