Home C&C++函数库 c++ 语法 程序源码 Linux C库

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 获取最大负载系数(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图