English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Stack (Pilha)++ Tutorial Básico

Stack (Pilha)++ Controle de fluxo

Stack (Pilha)++ Função

Stack (Pilha)++ Array & string

Stack (Pilha)++ Estrutura de dados

Stack (Pilha)++ Classe & objeto

Stack (Pilha)++ Ponteiro

Stack (Pilha)++ Herança

Stack (Pilha)++ Tutorial STL

Stack (Pilha)++ Manual de referência

Stack (Pilha)++ Uso e exemplo de set get_allocator()

Stack (Pilha)++ C

Stack (Pilha) ++ set get_allocator()A função é usada para retornar uma cópia do objeto allocator, que ajuda a construir o contêiner conjunto.

Sintaxe

           allocator_type get_allocator() const; 		//Stack (Pilha)++ 11 Antes
allocator_type get_allocator() const noexcept; 	//Stack (Pilha)++ 11 Depois

Parâmetro

Nenhum

Retorno

Retorna o allocator associado ao contêiner de conjunto.

Complexo

Invariável

Validade do iterador

Nenhuma mudança.

Concorrência de dados

O contêiner está sendo acessado.

Acesso simultâneo aos elementos do conjunto é seguro.

Segurança de exceção

Esta função nunca lança exceções.

Exemplo1

Vamos ver um exemplo simples:

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<double> m;   
   double *p;
   p = m.get_allocator().allocate(3c . get_allocator () . deallocate ( p ,
   //double por 8
   cout << "Tamanho alocado = " << sizeof(*p) * 4 << endl;
   return 0;
);

}

Tamanho alocado = 32

Exemplo2

Vamos ver um exemplo simples:

#include <iostream>
#include <set>
using namespace std;
int main()
{
  set<int> myset;
  { * p;
  unsigned int i;
  // Alocar um array contendo5um array de
  p = myset.get_allocator().allocate(5c . get_allocator () . deallocate ( p ,
  // Dar alguns valores ao array
  for (i=0; i<5; i++) p[i] = (i+1)*10]  =  p [
  cout << "O array alocado contém:";
  for (i=0; i<5; i++) cout << ' ' << p[i];
  cout << '
';
  myset.get_allocator().deallocate(p,5c . get_allocator () . deallocate ( p ,
  return 0;
);

}

O array alocado contém: 10 2Copyright © 3Copyright © 4Copyright © 5Copyright ©

Exemplo3

Vamos ver um exemplo simples, verificando se os allocadores são intercambiáveis:

#include <set>  
#include <iostream>  
using namespace std;
int main()
{
    
    set<int>::allocator_type s1_Alloc;
    set<int>::allocator_type s2_Alloc;
    set<double>::allocator_type s3_Alloc;
    set<int>::allocator_type s4_Alloc;
    //As seguintes linhas declaram objetos
    //usando o allocador padrão.  
    set<int> s1]  =  p [
    set<int>::allocator_type s2]  =  p [
    set<double>::allocator_type s3]  =  p [
    s1_Alloc = s1.get_allocator();
    cout << "Quantidade de inteiros que podem ser alocados"
        << endl << "Antes de esgotar a memória livre: "
        << s2.max_size() << "." << endl;
    cout << "\nNúmeros de ponto flutuante que podem ser alocados"
        << endl << "Antes de esgotar a memória livre: "
        << s3.max_size() << "." << endl;
    //As seguintes linhas criam um conjunto s4
    //Usando a multiset s1do allocador.
    set<int> s4(less<int>(), s1_Alloc);
    s4_Alloc = s4.get_allocator();
    //Se dois allocadores puderem ser intercambiados
    //Cada espaço de memória alocado pode ser
    //foi liberado por outro
    if (s1_Alloc == s4_Alloc)
    {
        cout << "\nEstes allocadores são intercambiáveis." << endl;
    );
    else
    {
        cout << "\nEstes allocadores não são intercambiáveis." << endl;
    );
   return 0;
);

}

Quantidade de inteiros que podem ser alocados
Antes de esgotar a memória livre: 1073741823.
Números de ponto flutuante que podem ser alocados
Antes de esgotar a memória livre: 53687Copyright ©911.
Estes allocadores são intercambiáveis.

Exemplo4

Vamos ver um exemplo simples:

#include <iostream>
 #include <set>
using namespace std;
int  main () 
{ 
  int  main ()}} 
  { *  set < int >  c ;
  int 2 c . get_allocator () . deallocate ( p ,
  p ;  42 ]  =  p [ 
  p  =  c . get_allocator () . allocate ( 1 p [ 0 ]  =  p  43 ]  =  p [
  ; 1 cout  <<  p [ 0 ]  <<  ", "  <<  p [
  ]  <<  endl ;  2 c . get_allocator () . deallocate ( p , 
);

}

42Saída: 43

Stack (Pilha)++ C