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


C++ unordered_set rehash()用法及代碼示例


unordered_set::rehash()是C++ STL中的內置函數,用於將unordered_set容器中的存儲桶數設置為給定大小或更大。如果size大於容器的當前大小,則調用rehash。如果它小於當前大小,則該函數對哈希的存儲桶計數沒有影響。

用法

unordered_set_name.rehash(size_type n)

參數:該函數接受一個強製性參數n,該參數指定容器的最小存儲桶數。


返回值:此函數不返回任何內容。

以下示例程序旨在說明unordered_set::rehash()函數:

示例1:

// C++ program to illustrate the 
// unordered_set::rehash() 
#include <iostream> 
#include <string> 
#include <unordered_set> 
  
using namespace std; 
  
int main() 
{ 
    // declaration 
    unordered_set<string> us; 
  
    // rehashed 
    us.rehash(9); 
  
    // insert elements 
    us.insert("geeks"); 
    us.insert("for"); 
    us.insert("geeks"); 
    us.insert("users"); 
  
    for (auto it = us.begin(); it != us.end(); it++) { 
        cout << *it << " "; 
    } 
  
    cout << "\nThe bucket count is "
         << us.bucket_count(); 
  
    return 0; 
}
輸出:
users for geeks 
The bucket count is 11

示例2:

// C++ program to illustrate the 
// unordered_set::rehash() 
#include <iostream> 
#include <string> 
#include <unordered_set> 
  
using namespace std; 
  
int main() 
{ 
    // declaration 
    unordered_set<string> us; 
  
    // rehash the unordered_set 
    us.rehash(20); 
  
    // insert strings 
    us.insert("geeks"); 
    us.insert("for"); 
    us.insert("geeks"); 
    us.insert("users"); 
    us.insert("are"); 
    us.insert("experts"); 
    us.insert("in"); 
    us.insert("DS"); 
  
    // prints the elements 
    for (auto it = us.begin(); it != us.end(); it++) { 
        cout << *it << " "; 
    } 
  
    cout << "\nThe bucket count is "
         << us.bucket_count(); 
  
    return 0; 
}
輸出:
DS in experts are users for geeks 
The bucket count is 23


相關用法


注:本文由純淨天空篩選整理自barykrg大神的英文原創作品 unordered_set rehash() function in C++ STL。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。