在C++ STL中使用unordered_multimap的get_allocator函数
unordered_multimap::get_allocator() 是C++ STL中的一个内置函数,用于获取unordered_mulitmap容器的分配器。
语法:
Allocator_type get_allocator()
参数: 此函数不接受任何参数。 返回值: 返回与unordered_multimap关联的分配器。下面的程序说明了 unordered_multimap::get_allocator() 函数的工作原理。
示例1:
// CPP program to illustrate
// unordered_multimap get_allocator()
#include <bits/stdc++.h>
using namespace std;
int main()
{
//'ump' is object of 'unordered_multimap'
unordered_multimap<int, int> ump;
//'allocator_type' is inherit in 'unordered_multimap'
//'u' is object of 'allocator_type'
unordered_multimap<int, int>::allocator_type u = ump.get_allocator();
// Comparing the Allocator with Pair<int, int>
cout << "Is allocator Pair<int, int> : "
<< boolalpha
<< (u == allocator<pair<int, int> >());
return 0;
}
输出:
Is allocator Pair : true
示例2:
// CPP program to illustrate
// unordered_multimap get_allocator()
#include <bits/stdc++.h>
using namespace std;
int main(void)
{
unordered_multimap<char, int> um;
pair<const char, int>* a;
a = um.get_allocator().allocate(8);
cout << "Allocated size = " << sizeof(*a) * 8 << endl;
return 0;
}
输出:
Allocated size = 64
时间复杂度: O(1)。
辅助空间: O(1)。