std::unordered_map::rehash()是内置函数C++ STL,可将容器中的存储桶数设置为n或更大。句法
void rehash( size_type s );
- 如果s大于当前进入容器的存储桶,则重新进行哈希处理。新的存储桶计数可以大于或等于n。
- 如果s小于当前存储桶计数,那么函数的影响可能会或可能不会。这完全取决于编译器
参数:它需要将新数量的存储桶放入容器中。
返回类型:它的返回类型为none。
示例1:
// C++ code to illustrate the method
// unordered_map rehash
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<char, int> sample;
// Map initialization
sample = { { 'a', 2 }, { 'b', 4 }, { 'c', 6 } };
cout << " Size of container:" << sample.size() << endl;
cout << " Initial bucket count:" << sample.bucket_count() << endl;
// changing rehash
sample.rehash(30);
cout << " Size of container:" << sample.size() << endl;
cout << " Now bucket count is: " << sample.bucket_count() << endl;
return 0;
}
输出:
Size of container:3 Initial bucket count:5 Size of container:3 Now bucket count is: 31
示例2:
// C++ code to illustrate the method
// unordered_map rehash
#include <bits/stdc++.h>
using namespace std;
int main()
{
unordered_map<int, int> sample;
// Map initialization
sample = { { 2, 2 }, { 3, 4 }, { 4, 6 }, { 5, 8 } };
cout << " Size of container:" << sample.size() << endl;
cout << " Initial bucket count:" << sample.bucket_count() << endl;
// changing rehash
sample.rehash(20);
cout << " Size of container:" << sample.size() << endl;
cout << " Now bucket count is: " << sample.bucket_count() << endl;
return 0;
}
输出:
Size of container:4 Initial bucket count:7 Size of container:4 Now bucket count is: 23
相关用法
- C++ unordered_set rehash()用法及代码示例
- C++ unordered_multiset rehash()用法及代码示例
- C++ unordered_multimap rehash()用法及代码示例
- C++ cin get()用法及代码示例
注:本文由纯净天空筛选整理自ankit15697大神的英文原创作品 unordered_map rehash in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。