📅  最后修改于: 2023-12-03 14:59:46.914000             🧑  作者: Mango
在C++ STL中的unordered_multimap容器中,rehash()函数可以用于重新设置容器的桶数量。
void rehash(size_type n);
参数n表示新的桶数量,如果当前容器中的元素数量大于新的桶数量,则函数会自动调整桶的数量以保证装载因子小于等于最大装载因子。
#include <iostream>
#include <unordered_map>
int main() {
std::unordered_multimap<int, int> um;
for (int i = 1; i <= 10; ++i) {
um.insert({i, i});
}
std::cout << "当前桶的数量:" << um.bucket_count() << std::endl;
um.rehash(20);
std::cout << "新桶的数量:" << um.bucket_count() << std::endl;
return 0;
}
输出结果:
当前桶的数量:11
新桶的数量:23
使用rehash()函数需要注意以下事项:
unordered_multimap容器的rehash()函数可以用于重置容器的桶数量,使容器内部的存储结构更加合理,提高查询和插入速度,但需要注意函数会使迭代器、引用和指针失效。