Computer >> Máy Tính >  >> Lập trình >> C ++

Hàm rehash () chưa có thứ tự_multimap trong C ++ STL

Hàm unrdered_multimap rehash (N) trong C ++ STL đặt số lượng nhóm trong vùng chứa thành n hoặc nhiều hơn. Một rehash là bắt buộc nếu n lớn hơn số lượng nhóm hiện tại trong vùng chứa. Số lượng nhóm mới có thể bằng hoặc lớn hơn n. Hàm có thể không ảnh hưởng đến số lượng nhóm và không thể buộc thực hiện lại nếu n thấp hơn số lượng nhóm hiện tại trong vùng chứa. Rehash () không trả về gì và lấy n làm tham số chỉ định số lượng nhóm tối thiểu cho bảng băm vùng chứa.

Thuật toán

Begin
   Declaring an empty map container m.
   Force the reahash() function to restrict number of bucket in a
   container to a minimum amount.
   Insert the key value pairs in the container atleast same as the
   minimum number of buckets.
   Print the elements in the map container. 
End.

Mã mẫu

#include<iostream>
#include <bits/stdc++.h>
using namespace std;

int main() {
   unordered_map<char, int> m;

   m.rehash(1);
   m.insert (pair<char, int>('b', 10));
   m.insert (pair<char, int>('a', 20));

   cout << "The size is: " << m.size();
   cout << "\nKey and values are: ";
   for (auto it = m.begin(); it != m.end(); it++) {
      cout << "{" << it->first << ", " << it->second << "} ";
   }
   return 0;
}

Đầu ra

The size is: 2
Key and values are: {a, 20} {b, 10}