Nenhum elemento pode ser incluído na frente da matriz. Com C ++ 17 e Superior, um elemento pode ser incluído na frente do vetor usando a função do membro emplace ().
Para o restante deste artigo, as diferenças entre o vetor e a matriz são ilustradas. Para cada ponto, a incapacidade da matriz é mencionada, ou sua maneira franca ou complicada de alcançar o mesmo objetivo é dada.
Conteúdo do artigo
Criando um vetor ou matriz
Um vetor pode ser criado de várias maneiras. A maneira básica é a seguinte:
vetorCorrespondentemente, uma matriz seria criada da seguinte forma:
char arr [] = 'a', 'b', 'c', 'd', 'e';Observe a diferença nos operandos que estão à esquerda do operador de atribuição. O número de elementos para o vetor pode ser adicionado ou reduzido, mas o tamanho da matriz permanece fixo, 5 neste caso.
Para ter e usar um vetor em um programa, o programa deve começar com:
#incluirPara ter e usar uma matriz em um programa, nenhuma diretiva pré -processadora é necessária.
Tamanho aumentado
O código a seguir mostra como um vetor de dois elementos é aumentado para quatro elementos, usando sua função de membro push_back ():
vetorEste código deve estar em um corpo de função. Para a matriz, e como a matriz tem um tamanho fixo, crie uma matriz para o número máximo de elementos previstos, antes de adicionar os elementos usando o operador []. Exemplo:
Char arr [4];Além disso, esse código deve estar dentro de um corpo de função.
Inserção
No código a seguir, um elemento é inserido na frente do elemento apontado pelo iterador, p:
vetorvtr = 'a', 'b', 'd', 'e';A saída é:
A B C D EA primeira declaração do código cria o objeto vetorial. 'C', que deveria estar na frente de 'D' por ordem alfabética, está ausente aqui. A segunda declaração retorna um iterador que aponta para o primeiro elemento do vetor. As próximas duas declarações aumentam o ponteiro para apontar para 'd'. A declaração após atribuir 'c' ao CH. Nesse segmento de código, a última declaração insere 'C' na frente de 'D', usando o iterador.
Quanto à matriz, não há como um elemento ser inserido. Devido a limitações como essa para a matriz, o vetor e outros contêineres foram projetados.
Nota: a função de membro insert () também pode ser usada para inserir um elemento na frente de um vetor.
Anexando
Anexar significa adicionar elementos na parte traseira. A função de membro push_back () pode ser usada para adicionar elementos na parte traseira do vetor - veja acima. A matriz não pode ser anexada a. A única maneira de contornar esse problema para a matriz é criar uma matriz para o tamanho máximo previsto. Coloque em elementos desde o início. Então algum espaço (células) será deixado para trás na matriz. Então, se houver necessidade de adicionar elementos na parte traseira, ajuste os elementos (valores) nos espaços por trás que estão vazios (que têm valores padrão).
Apagar um elemento
Para o vetor, um elemento pode ser apagado usando o iterador. O iterador apontará para o próximo elemento, que estava lá antes que a apagamento tenha ocorrido. O código a seguir apaga 'B':
vetorvtr = 'a', 'b', 'c', 'd', 'e';Nenhum elemento da matriz pode ser apagado, embora possa ser alterado.
Claro
Todos os elementos do vetor podem ser removidos, com sua função de membro clear (), como segue:
vetorvtr = 'a', 'b', 'c', 'd', 'e';A saída não é nada. A melhor coisa a fazer com a matriz é substituir todos os elementos por algum valor padrão. Com o número inteiro, o valor padrão é 0. O código a seguir ilustra:
int arr [] = 1, 2, 3, 4, 5;A saída é:
0 0 0 0Com o personagem, o valor padrão é o caráter nu, \ 0. O código a seguir ilustra:
char arr [] = 'a', 'b', 'c', 'd', 'e';A saída não mostra nada.
Trocando
Mesmo que dois vetores não tenham o mesmo tamanho, seus elementos podem ser trocados, com a função de membro da troca (). O código a seguir mostra o seguinte:
vetor vtr1 = 'a', 'b', 'c', 'd', 'e';Para duas matrizes a serem trocadas, elas devem ter o mesmo comprimento. A matriz não possui funções de membro (sem métodos). Então, para trocar elementos por matrizes, um código deve ser escrito da seguinte maneira:
char arr1 [] = 'a', 'b', 'c', 'd', 'e';A saída é:
Conteúdo do novo ARR1:Tamanho
O tamanho do vetor é retornado por sua função de membro, tamanho (). Isto é, é determinado em tempo de execução. Ilustração:
vetorvtr = 'a', 'b', 'c', 'd';Também pode ser feito assim:
char arr [7] = 'a', 'b', 'c', 'd';Isto é, colocando um número (tamanho) maior que o suposto tamanho (de 4 neste caso). No entanto, o número não deve ser menor que o número de elementos iniciais.
Matriz de comprimento variável
O tamanho da matriz pode, no entanto, ser dado (não determinado) no tempo de execução. Nesse caso, a matriz deverá ser criada em uma função ou em algum construto semelhante. O programa a seguir ilustra o seguinte:
#incluirA saída é:
A B C DConclusão
As principais diferenças entre o vetor e a matriz são as seguintes: o tamanho (comprimento) de um vetor pode ser aumentado naturalmente, mas o de uma matriz é fixo e não pode ser aumentado. Os elementos podem ser inseridos em um vetor, mas não podem ser inseridos em uma matriz. Os elementos podem ser anexados no final do vetor, mas não podem ser anexados no final da matriz. O vetor é uma classe da qual outros objetos vetoriais são instanciados, mas a matriz é um ponteiro constante para uma sequência de dados do mesmo tipo. O vetor tem métodos (funções de membro), mas a matriz não tem e, portanto, o vetor é chamado de estrutura de dados. Enquanto o ponteiro pode ser usado com a matriz, os iteradores são usados com o vetor. Um iterador é um ponteiro elaborado. A matriz mostra sua incapacidade ou tem uma maneira franca ou complicada de alcançar o mesmo objetivo para cada diferença.