在本文中,我们将讨论C ++ STL中multimap::get_allocator()函数的工作原理,语法和示例。
多图是关联容器,类似于图容器。它还有助于按特定顺序存储由键值和映射值的组合形成的元素。在多图容器中,可以有多个与同一键关联的元素。始终在内部借助关联的键对数据进行排序。
multimap::get_allocator()函数是C ++ STL中的内置函数,在<map>头文件中定义。get_allocator()用于将内存块分配给多图容器。此函数返回与其关联的容器的分配器对象的副本。
分配器是一个对象,负责动态地分配容器的内存。
multi_name.get_allocator();
该函数不接受任何参数。
此函数返回关联容器的分配器。
输入值
int *Ptr; std::multimap<int> newmap; newmap.insert(make_pair(‘A’, 22)); newmap.insert(make_pair(‘B’, 78)); newmap.insert(make_pair(‘C’, 66)); newmap.insert(make_pair(‘D’, 81)); Ptr = mymap.get_allocator().allocate(4);
输出结果
ptr = A:22 B:78 C:66 D:81
#include <iostream> #include <map> using namespace std; int main(){ int arrsize; multimap<char, int> mul; pair<const char, int>* pr; pr = mul.get_allocator().allocate(15); //为数组分配一些值 arrsize = sizeof(multimap<char, int>::value_type) * 10; cout << "Size of the allocated array is: "<< arrsize << " bytes.\n"; mul.get_allocator().deallocate(pr, 5); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Size of the allocated array is: 80 bytes.
#include <iostream> #include <map> using namespace std; int main(){ int arrsize; multimap<char, int> mul; pair<const char, int>* pr; pr = mul.get_allocator().allocate(2); //为数组分配一些值 arrsize = sizeof(multimap<char, int>::value_type) * 5; cout << "Size of the allocated array is: "<< arrsize << " bytes.\n"; mul.get_allocator().deallocate(pr, 5); return 0; }
输出结果
如果我们运行上面的代码,它将生成以下输出-
Size of the allocated array is: 40 bytes.