当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ unordered_set get_allocator()用法及代码示例


unordered_set的get_allocator()方法是C++标准模板库(STL)的一部分。此方法获取存储的分配器对象并返回它。

用法:

Allocator_type get_allocator() const;

其中allocator_type是容器使用的分配器的类型。


返回值:它返回用于构造容器的分配器对象。

异常:在此方法中,如果任何元素比较对象引发异常,则引发Exception。

下面的程序演示了unordered_set::get_allocator()函数

程序1:

// CPP program to illustrate 
// unordered_set get_allocator() 
  
#include <iostream> 
#include <unordered_set> 
  
using namespace std; 
int main() 
{ 
  
    //'c' is object of 'unordered_set' 
    unordered_set<int> c; 
  
    //'allocator_type' is inherit in 'unordered_set' 
    //'a' is object of 'allocator_type' 
    //'get_allocator()' is member of 'unordered_set' 
    unordered_set<int>::allocator_type a = c.get_allocator(); 
  
    // Comparing the Allocator with Pair<int, int> 
    cout << "Is allocator Pair<int, int>:"
         << boolalpha 
         << (a == allocator<pair<int, int> >()); 
  
    return 0; 
}
输出:
Is allocator Pair:true

复杂:
执行操作需要花费恒定(O(1))的时间复杂度。

程序2:

// CPP program to illustrate 
// unordered_set get_allocator() 
  
#include <iostream> 
#include <unordered_map> 
  
using namespace std; 
  
int main(void) 
{ 
    unordered_map<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


相关用法


注:本文由纯净天空筛选整理自SoumikMondal大神的英文原创作品 unordered_set get_allocator() in C++ STL with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。