Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++ STL의 unordered_multimap rehash() 함수

<시간/>

C++ STL의 unordered_multimap rehash(N) 함수는 컨테이너의 버킷 수를 n 이상으로 설정합니다. n이 컨테이너의 현재 버킷 수보다 크면 재해시가 강제 실행됩니다. 새 버킷 수는 n 이상일 수 있습니다. 이 함수는 버킷 수에 영향을 미치지 않을 수 있으며 n이 컨테이너의 현재 버킷 수보다 작은 경우 강제로 다시 해시하지 않을 수 있습니다. Rehash()는 아무 것도 반환하지 않으며 컨테이너 해시 테이블에 대한 최소 버킷 수를 지정하는 매개변수로 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.

예시 코드

#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;
}

출력

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