📜  C++ STL中的unordered_set get_allocator()示例

📅  最后修改于: 2021-05-30 04:26:44             🧑  作者: Mango

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 
#include 
  
using namespace std;
int main()
{
  
    //'c' is object of 'unordered_set'
    unordered_set c;
  
    //'allocator_type' is inherit in 'unordered_set'
    //'a' is object of 'allocator_type'
    //'get_allocator()' is member of 'unordered_set'
    unordered_set::allocator_type a = c.get_allocator();
  
    // Comparing the Allocator with Pair
    cout << "Is allocator Pair : "
         << boolalpha
         << (a == allocator >());
  
    return 0;
}
输出:
Is allocator Pair : true

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

程序2:

// CPP program to illustrate
// unordered_set get_allocator()
  
#include 
#include 
  
using namespace std;
  
int main(void)
{
    unordered_map um;
    pair* a;
  
    a = um.get_allocator().allocate(8);
  
    cout << "Allocated size = " << sizeof(*a) * 8 << endl;
  
    return 0;
}
输出:
Allocated size = 64
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程”