C ++ stdmake_unique

C ++ stdmake_unique
Neste artigo, discutiremos uma função "Make_unique" que é fornecida pela Biblioteca de Memória. Uma biblioteca de memória é usada para definir utilitários para gerenciar a alocação de memória e várias tarefas na pilha de memória. Antes de mudar para o nosso tópico, devemos saber sobre o que são indicadores únicos porque o uso da função make_unique também inclui os indicadores únicos também. Um ponteiro único é um ponteiro inteligente que tem propriedade de qualquer ponteiro, mas não o compartilha com nenhum outro ponteiro. A função make_unique é a maneira mais eficiente de inicializar o único_pointer e retorna um ponteiro único para qualquer objeto que tenha um tipo especificado. Foi introduzido em C ++ 14. Ao usar a função make_unique para criar um tipo de matriz exclusivo, então temos que declarar os elementos da matriz separadamente.

Sintaxe:
A seguir, a sintaxe do ponteiro Make_unique:

modelo exclusivo_ptr make_unique (args);

Na sintaxe acima, “Classe T” está o tipo em que o ponteiro único estará apontando e “args” denota o argumento que deve ser passado para o construtor de qualquer objeto. Outro parâmetro que às vezes é transmitido a essa função é o "tamanho" usado para alocar a pilha de memória para o número de elementos que estão sendo transmitidos a ele. O tipo de objeto para a função make_unique é passado em suportes de ângulo, onde os valores para os quais os pontos do ponteiro do objeto são passados ​​entre parênteses.

Exemplo # 01:

Vamos executar um exemplo no qual criaremos um objeto que imprimirá a mensagem para o usuário na confirmação de se o Make_unique é criado com sucesso um UNQIUE_PTR ou não. Agora, incluindo os arquivos de cabeçalho, o primeiro é a memória e o segundo é o isoTream. A memória é usada para fornecer os utilitários para gerenciar a alocação de memória dinâmica. O iostream é usado para executar várias operações de entrada e saída. Depois de incluir nossos arquivos de cabeçalho, criaremos uma classe chamada "Mkunique". Dentro desta classe, criamos uma função chamada "Show ()". Para lidar com a exibição da mensagem no objeto, chame usando o ponteiro make_unique.

O método show () será chamado usando o ponteiro exclusivo que declaramos dentro de nossa função principal. Agora, prosseguindo para a função principal, onde inicializamos um ponteiro único “P” da classe Type and “Mkunique” à qual atribuímos uma função de membro make_unique do tipo “Mkunique”. Depois disso, usando esse ponteiro "P", chamaremos o método show () usando o operador "->" que é usado para acessar a função da classe de objeto usando ponteiros.

#incluir
#incluir
Classe Mkunique

público:
Void Show ()

std :: cout

Vamos verificar nossa saída na qual a mensagem é exibida com sucesso. Isso significa que podemos criar um ponteiro único usando a função Make_unique.

Exemplo # 02:

Agora, estaremos realizando outro exemplo no qual criaremos uma matriz usando um ponteiro inteligente e obteremos os valores que são passados. Depois de incluir nossos arquivos de cabeçalho, como estavam no exemplo acima, o iostream e o arquivo de cabeçalho da memória, mergulharemos em nossa função principal. Declaramos um ponteiro automático "mk_unique", um automóvel é um tipo de dados usado para declarar uma variável de tipo de ponteiro. Para o MK_UNICE, atribuímos a função do membro "Make_unique" da matriz do tipo, onde "8" é o tamanho da matriz. Isso significa que a variável mk_unique é agora um ponteiro único que lidará com a matriz de tamanho menor que "8".

Em seguida, usando o loop for, vamos armazenar os valores em nossa matriz usando a variável "K". O loop for começa de "0" e termina no valor "7". Começará de 0 a menos de 8 até que o último índice seja atendido. Ele executará o código interno com o incremento de 1. Dentro do loop for, atribuímos "K" ao ponteiro que armazenará os valores na pilha de memória. E, em seguida, usando a declaração "cout", exibimos esses valores usando o ponteiro make_unique "mk_unique".

#incluir
#incluir
int main ()

Auto mk_unique = std :: make_unique(8);
para (int k = 0; k < 8; ++k)

mk_unique [k] = k;
std :: cout << mk_unique[k] << std::endl;

Conforme mostrado no trecho abaixo, os valores que passamos para a matriz de ponteiros imprimiram os valores de 1 a 7 porque o índice de matriz começa de 0, de 0 a 7 lojas, os valores que passamos usando o loop for de 1 a 7. Quando o loop começar pela primeira vez, verificará a condição se K é menor que "8" ou não. Em seguida, ele executa o valor que é armazenado no índice 0, que é 1. Depois disso, ele o aumentará em 1 e assim por diante até que a condição seja falsa.

Exemplo # 03:

Agora, tentaremos uma maneira simples de criar um ponteiro único usando a função Make_unique. Então, vamos imprimir o valor usando o ponteiro que estaremos criando. Vamos primeiro incluir arquivos de cabeçalho e depois seguir em direção à nossa principal função, na qual declaramos um ponteiro único chamado "p" do tipo inteiro. Isso significa que ele estará segurando o valor do tipo inteiro. Para esse ponteiro, atribuímos um ponteiro make_unique do tipo inteiro para o qual passamos o valor "123" como um argumento que será armazenado na pilha de memória. No final, exibimos o valor que é armazenado na memória usando "*p", o que significa que ele estará exibindo o valor do ponteiro exclusivo "P", asterisk "*" é usado para acessar o ponteiro.

#incluir
#incluir

std :: Único_ptr p = std :: make_unique(123);
std :: cout << *p;

Como mostrado na figura abaixo, a saída do código realizada acima é exibida. Exibimos o valor do ponteiro único "P" que foi "123" sem ter nenhum erro.

Conclusão

Neste guia, explicamos os métodos de como a função de membro make_unique é usada para criar um único_pointer. Make_unique é a maneira mais eficaz de declarar um ponteiro de um tipo único, esses ponteiros são destruídos sempre que se afasta do escopo. Make_unique é a maneira mais segura de criar um local de memória temporário na pilha de memória.