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. |