Biblioteca C ++ - <list>
Introdução
List é um contêiner de sequência usado popularmente. Container é um objeto que contém dados do mesmo tipo. O contêiner de lista é implementado como uma lista duplamente vinculada, portanto, fornece acesso sequencial bidirecional aos dados.
A lista não fornece acesso aleatório rápido, apenas oferece suporte ao acesso sequencial em ambas as direções. Lista permite a operação de inserção e exclusão em qualquer lugar dentro de uma sequência em tempo constante.
Os elementos da lista podem estar espalhados em diferentes blocos de memória. O contêiner armazena as informações necessárias para permitir o acesso sequencial aos seus dados. As listas podem diminuir ou expandir conforme necessário de ambas as extremidades no tempo de execução. O requisito de armazenamento é atendido automaticamente pelo alocador interno.
Listas de tamanho zero também são válidas. Nesse caso, list.begin () e list.end () apontam para o mesmo local. Mas o comportamento de chamar front () ou back () é indefinido.
Definição
Abaixo está a definição de std :: list do arquivo de cabeçalho <list>
template < class T, class Alloc = allocator<T> > class list;
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 | alocator_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 <list>
Abaixo está uma lista de todos os métodos do cabeçalho <list>.
Construtores
| Sr. Não. | Método e Descrição |
|---|---|
| 1 | list :: list
construtor padrão Constrói uma lista vazia com zero elementos. |
| 2 | construtor list :: list fill
Constrói uma nova lista com n elementos e atribui val a cada elemento da lista. |
| 3 | construtor list :: list fill
Constrói uma nova lista com n elementos e atribui valor zero a cada elemento da lista. |
| 4 | list :: list range constructor
Constrói uma lista com tantos elementos quanto no intervalo do primeiro ao último . |
| 5 | list :: list copy constructor
Constrói uma lista com cópia de cada elemento presente na lista existente. |
| 6 | construtor list :: list move
Constrói uma lista com o conteúdo de outro usando a semântica de movimento. |
| 7 | list :: list initializer list constructor Constrói uma lista com o conteúdo de outro usando a semântica de movimento. |
Destruidor
| Sr. Não. | Método e Descrição |
|---|---|
| 1 | lista :: ~ lista
Destrói o objeto da lista desalocando sua memória. |
Funções de membro
| Sr. Não. | Método e Descrição |
|---|---|
| 1 | lista :: atribuir versão de intervalo Atribui um novo valor à lista, substituindo os antigos. |
| 2 | lista :: atribuir versão de preenchimento Atribui novos valores à lista, substituindo os antigos. |
| 3 | lista :: atribuir versão da lista de inicializador Atribui novos valores à lista, substituindo os antigos. |
| 4 | lista :: voltar
Retorna uma referência ao último elemento da lista. |
| 5 | lista :: começar
Retorna um iterador de acesso aleatório que aponta para o primeiro elemento da lista. |
| 6 | list :: cbegin
Retorna um iterador de acesso aleatório constante que aponta para o início da lista. |
| 7 | list :: cend
Retorna um iterador de acesso aleatório constante que aponta para o final da lista. |
| 8 | lista :: limpar
Destrói a lista removendo todos os elementos da lista e define o tamanho da lista como zero. |
| 9 | list :: crbegin
Retorna um iterador reverso constante que aponta para o último elemento da lista. |
| 10 | list :: crend
Retorna um iterador reverso constante que aponta para o elemento teórico que precede o primeiro elemento da lista. |
| 11 | list :: emplace
Amplia a lista inserindo um novo elemento em uma determinada posição. |
| 12 | list :: emplace_back
Insere um novo elemento no final da lista e aumenta o tamanho da lista em um. |
| 13 | list :: emplace_front
Insere um novo elemento no início da lista e aumenta o tamanho da lista em um. |
| 14 | lista :: vazio
Testa se a lista está vazia ou não. |
| 15 | lista :: fim
Retorna um iterador de acesso aleatório que aponta para o último elemento da lista. |
| 16 | lista :: apagar versão da posição Remove um único elemento da lista. |
| 17 | lista :: apagar versão do intervalo Remove um intervalo de elemento da lista. |
| 18 | lista :: frente
Retorna uma referência ao primeiro elemento da lista. |
| 19 | list :: get_allocator
Retorna um alocador associado à lista |
| 20 | lista :: inserir versão de elemento único Estende o iterador inserindo novo elemento na posição na lista. |
| 21 | lista :: inserir versão de preenchimento Estende a lista inserindo novos elementos no contêiner. |
| 22 | lista :: inserir versão do intervalo Estende a lista inserindo novos elementos no contêiner. |
| 23 | lista :: inserir versão de movimento Estende a lista inserindo um novo elemento no contêiner. |
| 24 | lista :: inserir versão da lista de inicializadores Amplia a lista inserindo novos elementos no contêiner |
| 25 | list :: max_size
Retorna o número máximo de elementos que podem ser mantidos por lista. |
| 26 | list :: merge
Mescla duas listas classificadas em uma. |
| 27 | list :: merge compare function Mescla duas listas classificadas em uma. |
| 28 | lista :: mesclar versão de movimentação Mescla duas listas classificadas em uma usando a semântica de movimentação. |
| 29 | list :: merge compare função mover versão Mescla duas listas classificadas em uma usando a semântica de movimentação. |
| 30 | list :: operator = copiar versão Atribui novos conteúdos à lista, substituindo os antigos. |
| 31 | lista :: operador = mover versão Atribua novos conteúdos à lista, substituindo os antigos. |
| 32 | lista :: operador = versão da lista de inicializador Atribua novos conteúdos à lista, substituindo os antigos. |
| 33 | list :: pop_back
Remove o último elemento da lista. |
| 34 | list :: pop_front
Remove o primeiro elemento da lista. |
| 35 | list :: push_back
Insere um novo elemento no final da lista. |
| 36 | list :: push_back move version Insere um novo elemento no final da lista. |
| 37 | list :: push_front
Insere um novo elemento no início da lista. |
| 38 | list :: push_front move version Insere um novo elemento no início da lista. |
| 39 | list :: rbegin
Retorna um iterador reverso que aponta para o último elemento da lista. |
| 40 | lista :: remover
remove elemento (s) da lista que corresponde ao valor. |
| 41 | list :: remove_if
remove elementos da lista que atendem à condição. |
| 42 | list :: rend
Retorna um iterador reverso que aponta para a extremidade reversa da lista. |
| 43 | list :: resize
Altera o tamanho da lista. |
| 44 | lista :: redimensionar versão do valor Altera o tamanho da lista. |
| 45 | lista :: reversa
Inverte a ordem dos elementos presentes na lista. |
| 46 | lista :: tamanho
Retorna o número de elementos presentes na lista. |
| 47 | list :: sort
Classifica os elementos da lista. |
| 48 | função list :: sort compare Classifica os elementos da lista. |
| 49 | list :: splice
Transfere todos os elementos da lista para * isto. |
| 50 | list :: splice single element Transfere um elemento apontado pelo iterador i da lista x para * this . |
| 51 | lista :: versão de movimento de emenda Transfere todos os elementos da lista x para * esta usando a semântica de movimentação. |
| 52 | lista :: versão do intervalo de emenda
Transfere os elementos no intervalo do primeiro ao último de x para * this . |
| 53 | list :: splice versão de movimento de elemento único Transfere o elemento apontado pelo iterador i da lista x para * this usando a semântica de movimentação. |
| 54 | lista :: faixa de emenda e versão de movimento Transfere os elementos no intervalo do primeiro ao último de x para * isso usando a semântica de movimento. |
| 55 | lista :: trocar
Troca o conteúdo da lista com o conteúdo de outra lista x . |
| 56 | lista :: única
Remove todos os elementos duplicados consecutivos da lista. |
| 57 | lista :: única
Remove todos os elementos duplicados consecutivos da lista. |
Funções sobrecarregadas de não membros
| Sr. Não. | Método e Descrição |
|---|---|
| 1 | operador ==
Testa se duas listas são iguais ou não. |
| 2 | operador! =
Testa se duas listas são iguais ou não. |
| 3 | operador <
Testa se a primeira lista é inferior a outra ou não. |
| 4 | operador <=
Testa se a primeira lista é menor ou igual a outra ou não. |
| 5 | operador>
Testa se a primeira lista é maior que a outra ou não. |
| 6 | operador> =
Testa se a primeira lista é maior ou igual a outra ou não. |
| 7 | troca
Troca o conteúdo de duas listas. |