C++ unordered_multimap::max_bucket_count() 函式



C++ 的std::unordered_multimap::max_bucket_count() 函式用於返回 unordered_multimap 容器根據其當前記憶體分配可以容納的最大桶數。unordered_multimap 中的每個桶都是一個容器,它儲存具有相同雜湊值的元素。

桶是容器內部雜湊表中的一個槽,元素根據其鍵的雜湊值分配到該槽。

語法

以下是 std::unordered_multimap::max_bucket_count() 函式的語法。

size_type max_bucket_count() const;

引數

此函式不接受任何引數。

返回值

此函式返回一個無符號整數,表示最大桶數。

示例 1

讓我們看下面的例子,我們將對空 multimap 使用 max_bucket_count() 函式並觀察輸出。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> um;
   cout << "max_bucket_count of unordered_multimap = " << um.max_bucket_count() << endl;
   return 0;
}

輸出

讓我們編譯並執行以上程式,這將產生以下結果:

max_bucket_count of unordered_multimap = 576460752303423487

示例 2

考慮另一種情況,我們將使用 max_bucket_count 獲取當前 multimap 中的最大桶數。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm={{'A', 1}, {'B', 2}, {'A', 3}, {'B', 4}, {'C', 5}};
   cout << "max_bucket_count of unordered_multimap = " << umm.max_bucket_count() << endl;
   return 0;
}

輸出

如果我們執行以上程式碼,它將生成以下輸出:

max_bucket_count of unordered_multimap = 576460752303423487

示例 3

在下面的示例中,我們建立了一個儲存負鍵值的 unordered_multimap,然後使用max_bucket_count獲取最大桶數,如下所示:

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<int, char> umm={{-1, 'a'}, {-2, 'b'}, {-3, 'c'}, {-2, 'd'}, {-3, 'e'}};
   cout << "max_bucket_count of unordered_multimap = " << umm.max_bucket_count() << endl;
   return 0;
}

輸出

以下是以上程式碼的輸出:

max_bucket_count of unordered_multimap = 576460752303423487

示例 4

在下面的示例中,我們將獲取在將元素插入空 multimap 之前和之後的最大桶數。

#include <iostream>
#include <unordered_map>
using namespace std;
  
int main() {
   unordered_multimap<char, int> ummap;  
   cout << "Size is : " << ummap.size() << endl;
   cout << "Max bucket count is : " << ummap.max_bucket_count() << endl;
	
   // insert elements
   ummap.insert({ 'a', 10 });
   ummap.insert({ 'b', 12 });
   ummap.insert({ 'c', 13 });
   ummap.insert({ 'b', 12 });
   ummap.insert({ 'd', 15 });
   ummap.insert({ 'e', 20 });
  
   cout << "Size is : " << ummap.size() << endl;
   cout << "Max bucket count is : " << ummap.max_bucket_count() << endl;
   return 0;
}

輸出

以上程式碼的輸出如下:

Size is : 0
Max bucket count is : 576460752303423487
Size is : 6
Max bucket count is : 576460752303423487
廣告

© . All rights reserved.