unordered_set get_allocator() en C++ STL con ejemplos

El método get_allocator() de unordered_set es parte de la biblioteca de plantillas estándar (STL) de C++. Este método obtiene el objeto asignador almacenado y lo devuelve.

Sintaxis:

Allocator_type get_allocator() const;

donde allocator_type es el tipo de asignador utilizado por el contenedor.

Valor devuelto: Devuelve el objeto asignador utilizado para construir el contenedor.

Excepciones: en este método, se lanza una excepción si cualquier objeto de comparación de elementos lanza una excepción.

El siguiente programa ilustra la función unordered_set::get_allocator()

Programa 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;
}
Producción:

Is allocator Pair : true

Complejidad:
se necesita un tiempo constante (O (1)) de complejidad para realizar una operación.

Programa 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;
}
Producción:

Allocated size = 64

Publicación traducida automáticamente

Artículo escrito por SoumikMondal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *