當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。