当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ unordered_map rehash用法及代码示例


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



相关用法


注:本文由纯净天空筛选整理自ankit15697大神的英文原创作品 unordered_map rehash in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。