Biblioteca C ++ - <deque>

Introdução

Deque é a sigla para Double Eencontrado Queue. É um container de sequência que pode alterar seu tamanho em tempo de execução. Container é um objeto que contém dados do mesmo tipo. Os contêineres de sequência armazenam elementos estritamente em sequência linear.

Elementos de deque podem estar espalhados em diferentes partes da memória. O contêiner armazena as informações necessárias para permitir o acesso direto a qualquer elemento em tempo constante. Ao contrário dos vetores, deque não tem garantia de armazenar todos os seus elementos em locais de memória contíguos. Portanto, ele não permite acesso direto aos dados por ponteiros de deslocamento. Mas permite o acesso direto a qualquer elemento usando o operador subscrito [].

Deque pode encolher ou expandir conforme necessário de ambas as extremidades no tempo de execução. O requisito de armazenamento é atendido automaticamente pelo alocador interno . Deque fornece funcionalidade semelhante como vetores, mas fornece uma maneira eficiente de inserir e excluir dados de qualquer extremidade.

Deques de tamanho zero também são válidos. Nesse caso, deque.begin () e deque.end () apontam para o mesmo local. Mas o comportamento de chamar front () ou back () é indefinido.

Definição

Abaixo está a definição de std :: deque do arquivo de cabeçalho <deque>

template < class T, class Alloc = allocator<T> > class deque;

Parâmetros

  • T - Tipo de elemento contido.

    T pode ser substituído por qualquer outro tipo de dados, incluindo tipo definido pelo usuário.

  • Alloc - Tipo de objeto alocador.

    Por padrão, o modelo de classe de alocador é usado, o que define o modelo de alocação de memória mais simples e é independente de valor.

Tipos de membros

Os seguintes tipos de membro podem ser usados ​​como parâmetros ou tipo de retorno por funções de membro.

Sr. Não. Tipos de membros Definição
1 value_type T (primeiro parâmetro do modelo)
2 allocator_type Alloc (segundo parâmetro do modelo)
3 referência value_type &
4 const_reference const value_type &
5 ponteiro value_type *
6 const_pointer const value_type *
7 iterador um iterador de acesso aleatório para value_type
8 const_iterator um iterador de acesso aleatório para const value_type
9 reverse_iterator std :: reverse_iterator <iterator>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 Tamanho Tipo size_t
12 tipo de diferença ptrdiff_t

Funções de <deque>

Abaixo está uma lista de todos os métodos do cabeçalho <deque>.

Construtores

Sr. Não. Método e Descrição
1 construtor deque :: deque default

Constrói um deque vazio com elemento zero.

2 construtor deque :: deque fill

construir um novo deque com n elementos e atribuir val a cada elemento de deque

3 construtor deque :: deque range

Constrói um deque com tantos elementos quanto no intervalo do primeiro ao último .

4 deque :: deque copy constructor

Constrói um deque com cópia de cada elemento presente no container existente.

5 construtor deque :: deque move

Constrói um deque com o conteúdo de outro usando a semântica de movimento.

6 construtor deque :: deque initializer list

Constrói um deque da lista de inicialização.

Destruidor

Sr. Não. Método e Descrição
1 deque :: ~ deque

Destrói o objeto deque desalocando sua memória.

Funções de membro

Sr. Não. Método e Descrição
1 deque :: atribuir versão de intervalo

Atribua novos valores aos elementos deque substituindo os antigos.

2 deque :: atribuir versão de preenchimento

Atribua novos valores aos elementos deque substituindo os antigos.

3 deque :: atribuir versão da lista de inicializadores

Atribua novos valores aos elementos deque substituindo os antigos.

4 deque :: at

Retorna a referência ao elemento presente na localização n no deque.

5 deque :: voltar

Retorna uma referência ao último elemento do deque.

6 deque :: begin

Retorne um iterador de acesso aleatório apontando para o primeiro elemento do deque.

7 deque :: cbegin

Retorna um iterador de acesso aleatório constante que aponta para o início do deque.

8 deque :: cend

Retorna um iterador de acesso aleatório constante que aponta para o início do deque.

9 deque :: clear

Destrói o deque removendo todos os elementos do deque e define o tamanho do deque como zero.

10 deque :: crbegin

Retorna um iterador reverso constante que aponta para o início do reversor do contêiner.

11 deque :: crend

Retorna um iterador reverso constante que aponta para a extremidade reversa do deque.

12 deque :: emplace

Estende o contêiner inserindo um novo elemento na posição .

13 deque :: emplace_back

Insere um novo elemento no final do deque.

14 deque :: emplace_front

Insere um novo elemento no início do deque.

15 deque :: vazio

Testa se o deque está vazio ou não.

16 deque :: end

Retorna um iterador que aponta para o elemento além do fim no contêiner deque.

17 deque :: apagar versão da posição

Remove um único elemento do deque.

18 deque :: apagar versão do intervalo

Remove um único elemento do deque.

19 deque :: front

Retorna uma referência ao primeiro elemento do deque

20 deque :: get_allocator

Retorna um alocador associado a deque

21 deque :: inserir versão de elemento único

Estende o contêiner inserindo um novo elemento na posição.

22 deque :: inserir versão de preenchimento

Estende o contêiner inserindo um novo elemento nele.

23 deque :: inserir versão do intervalo

Estende o contêiner inserindo um novo elemento nele.

24 deque :: inserir versão de movimento

Estende o contêiner inserindo um novo elemento nele.

25 deque :: inserir versão da lista de inicializadores

Estende o contêiner inserindo um novo elemento nele.

26 deque :: max_size

Retorna o número máximo de elementos que podem ser mantidos por deque.

27 deque :: operator = copiar versão

Atribua novos conteúdos ao deque substituindo os antigos e modifique o tamanho, se necessário.

28 deque :: operator = mover versão

Atribua novos conteúdos ao deque substituindo os antigos e modifique o tamanho, se necessário.

29 deque :: operator = versão da lista de inicializadores

Atribua novos conteúdos ao deque substituindo os antigos e modifique o tamanho, se necessário.

30 deque :: operator []

Retorna uma referência ao elemento presente na localização n .

31 deque :: pop_back

Remove o último elemento do deque e reduz o tamanho do deque em um.

32 deque :: pop_front

Remove o primeiro elemento do deque e reduz o tamanho do deque em um.

33 deque :: push_back

Insere um novo elemento no final do deque e aumenta o tamanho do deque em um.

34 deque :: push_back move version

Insere um novo elemento no final do deque e aumenta o tamanho do deque em um.

35 deque :: push_front

Insere um novo elemento na frente do deque e aumenta o tamanho do deque em um.

36 deque :: push_front move version

Insere um novo elemento na frente do deque e aumenta o tamanho do deque em um.

37 deque :: rbegin

Retorna um iterador reverso que aponta para o último elemento do deque.

38 deque :: rend

Retorna um iterador reverso que aponta para a extremidade reversa do deque.

39 deque :: resize

Altera o tamanho do deque.

40 deque :: resize value version

Altera o tamanho do deque.

41 deque :: shrink_to_fit

Solicita que o contêiner reduza sua capacidade de se ajustar ao seu tamanho.

42 deque :: size

Retorna o número de elementos presentes no deque.

43 deque :: swap

Troca o conteúdo de deque com o conteúdo de outro deque x .

Funções sobrecarregadas de não membros

Sr. Não. Método e Descrição
1 operador ==

Testa se dois deques são iguais ou não.

2 operador! =

Testa se dois deques são iguais ou não.

3 operador <

Testa se o primeiro deque é menor do que outro ou não.

4 operador <=

Testa se o primeiro deque é menor ou igual a outro ou não.

5 operador>

Testa se o primeiro deque é maior do que outro ou não.

6 operador> =

Testa se o primeiro deque é maior ou igual a outro ou não.

7 troca

Troca o conteúdo de dois deque.