Biblioteca C ++ - <vetor>
Introdução
Vetores são recipientes de sequência que podem mudar de tamanho. Container é um objeto que contém dados do mesmo tipo. Os contêineres de sequência armazenam elementos estritamente em sequência linear.
Vector armazena elementos em localizações contíguas de memória e permite acesso direto a qualquer elemento usando o operador subscrito []. Ao contrário da matriz, o vetor pode encolher ou expandir conforme necessário em tempo de execução. O armazenamento do vetor é feito automaticamente.
Para suportar a funcionalidade de redução e expansão em tempo de execução, o contêiner de vetor pode alocar algum armazenamento extra para acomodar um possível crescimento, portanto, o contêiner tem capacidade real maior do que o tamanho. Portanto, em comparação com o array, o vetor consome mais memória em troca da capacidade de gerenciar o armazenamento e crescer dinamicamente de forma eficiente.
Vetores de tamanho zero também são válidos. Nesse caso, vector.begin () e vector.end () apontam para o mesmo local. Mas o comportamento de chamar front () ou back () é indefinido.
Definição
Abaixo está a definição de std :: vector do arquivo de cabeçalho <vector>
template < class T, class Alloc = allocator<T> > class vector;
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 <vector>
Abaixo está uma lista de todos os métodos do cabeçalho <vector>.
Construtores
Sr. Não. | Método e Descrição |
---|---|
1 | construtor vector :: vector padrão Constrói um container vazio, com zero elementos. |
2 | construtor vector :: vector fill Constrói um contêiner com n elementos e assignd val para cada elemento. |
3 | construtor vector :: vector range Constrói um contêiner com tantos elementos no intervalo do primeiro ao último. |
4 | construtor vector :: vector copy Constrói um container com cópia de cada elemento presente no container x existente . |
5 | construtor vector :: vector move Constrói o contêiner com o conteúdo de outro usando a semântica de movimentação . |
6 | construtor de lista de inicializador vector :: vector Constrói um contêiner a partir da lista de inicializadores. |
Destruidor
Sr. Não. | Método e Descrição |
---|---|
1 | vetor :: ~ vetor
Destrói o contêiner desalocando a memória do contêiner. |
Funções de membro
Sr. Não. | Método e Descrição |
---|---|
1 | vector :: atribuir versão de preenchimento Atribua novos valores aos elementos do vetor, substituindo os antigos. |
2 | vector :: atribuir versão de intervalo Atribua novos valores aos elementos do vetor, substituindo os antigos. |
3 | vector :: atribuir versão da lista de inicializador Atribua novos valores aos elementos do vetor, substituindo os antigos. |
4 | vector :: em
Retorna a referência ao elemento presente na localização n no vetor. |
5 | vector :: voltar
Retorna uma referência ao último elemento do vetor. |
6 | vector :: begin
Retorne um iterador de acesso aleatório apontando para o primeiro elemento do vetor. |
7 | vetor :: capacidade
Retorna o tamanho do armazenamento alocado, expresso em termos de elementos. |
8 | vector :: cbegin
Retorna um iterador de acesso aleatório constante que aponta para o início do vetor. |
9 | vector :: cend
Retorna um iterador de acesso aleatório constante que aponta para o início do vetor. |
10 | vector :: claro
Destrói o vetor removendo todos os elementos do vetor e define o tamanho do vetor como zero. |
11 | vector :: crbegin
Retorna um iterador reverso constante que aponta para o início do reversor do contêiner. |
12 | vector :: crend
Retorna um iterador reverso constante que aponta para a extremidade reversa do vetor. |
13 | vector :: data
Retorna um ponteiro para o primeiro elemento do contêiner de vetor. |
14 | vector :: emplace
Estende o contêiner inserindo um novo elemento na posição . |
15 | vector :: emplace_back
Insere um novo elemento no final do vetor. |
16 | vector :: vazio
Testa se o vetor está vazio ou não. |
17 | vector :: end
Retorna um iterador que aponta para o elemento além do fim no contêiner de vetor. |
18 | vector :: apagar versão da posição Remove um único elemento do vetor. |
19 | vector :: apagar versão do intervalo Remove um único elemento do vetor. |
20 | vector :: front
Retorna uma referência ao primeiro elemento do vetor. |
21 | vector :: get_allocator
Retorna um alocador associado ao vetor. |
22 | vector :: inserir versão de elemento único Estende o iterador inserindo um novo elemento na posição. |
23 | vetor :: inserir versão de preenchimento Estende o vetor inserindo um novo elemento no contêiner. |
24 | vector :: inserir versão do intervalo Estende o vetor inserindo um novo elemento no contêiner. |
25 | vector :: inserir versão de movimento Estende o vetor inserindo um novo elemento no contêiner. |
26 | vector :: inserir versão da lista de inicializadores Estende o vetor inserindo um novo elemento no contêiner. |
27 | vector :: max_size
Retorna o número máximo de elementos que podem ser mantidos por vetor. |
28 | vector :: operator = copiar versão Atribua novos conteúdos ao vetor substituindo os antigos e modifique o tamanho, se necessário. |
29 | vector :: operator = mover versão Atribua novos conteúdos ao vetor substituindo os antigos e modifique o tamanho, se necessário. |
30 | vector :: operator = versão da lista de inicializador Atribua novos conteúdos ao vetor substituindo os antigos e modifique o tamanho, se necessário. |
31 | vector :: operator []
Retorna uma referência ao elemento presente na localização n . |
32 | vector :: pop_back
Remove o último elemento do vetor e reduz o tamanho do vetor em um. |
33 | vector :: push_back
Insere um novo elemento no final do vetor e aumenta o tamanho do vetor em um. |
34 | vector :: rbegin
Retorna um iterador reverso que aponta para o último elemento do vetor. |
35 | vector :: rend
Retorna um iterador reverso que aponta para a extremidade reversa do vetor. |
36 | vector :: reserve
As solicitações de reserva de capacidade do vetor devem ser pelo menos o suficiente para conter n elementos. |
37 | vector :: resize
Altera o tamanho do vetor. |
38 | vector :: shrink_to_fit
Solicita que o contêiner reduza sua capacidade de se ajustar ao seu tamanho. |
39 | vector :: size
Retorna o número de elementos presentes no vetor. |
40 | vector :: swap
Troca o conteúdo do vetor com o conteúdo do vetor x . |
Funções sobrecarregadas de não membros
Sr. Não. | Método e Descrição |
---|---|
1 | operador ==
Testa se dois vetores são iguais ou não. |
2 | operador! =
Testa se dois vetores são iguais ou não. |
3 | operador <
Testa se o primeiro vetor é menor que outro ou não. |
4 | operador <=
Testa se o primeiro vetor é menor ou igual a outro ou não. |
5 | operador>
Testa se o primeiro vetor é maior que o outro ou não. |
6 | operador> =
Testa se o primeiro vetor é maior ou igual a outro ou não. |
7 | troca
Troca o conteúdo de dois vetores. |