Quais são as diferenças entre uma matriz e um vetor em C ++? Um exemplo das diferenças podem ser bibliotecas, simbolismo, habilidades, etc.
Array
Os arrays contêm um número específico de elementos de um tipo específico. Para que o compilador possa reservar a quantidade necessária de espaço quando o programa for compilado, você deve especificar o tipo e o número de elementos que o array conterá quando for definido. O compilador deve ser capaz de determinar esse valor quando o programa é compilado. Uma vez que um array tenha sido definido, você usa o identificador para o array junto com um índice para acessar elementos específicos do array. [...] arrays são indexados por zero; ou seja, o primeiro elemento está no índice 0. Este esquema de indexação é indicativo do relacionamento próximo em C ++ entre ponteiros e matrizes e as regras que a linguagem define para aritmética de ponteiros.
- Referência de bolso C ++
Vetor
Um vetor é uma sequência de objetos de tamanho dinâmico que fornece
operator[]
acesso aleatório no estilo array . A função de membropush_back
copia seus argumentos por meio do construtor de cópia, adiciona essa cópia como o último item no vetor e aumenta seu tamanho em um.pop_back
faz exatamente o oposto, removendo o último elemento. A inserção ou exclusão de itens do final de um vetor leva um tempo constante amortizado e a inserção ou exclusão de qualquer outro local leva um tempo linear. Estes são os princípios básicos dos vetores. Há muito mais para eles. Na maioria dos casos, um vetor deve ser sua primeira escolha em vez de uma matriz de estilo C. Em primeiro lugar, eles são dimensionados dinamicamente, o que significa que podem crescer conforme necessário. Você não precisa fazer todos os tipos de pesquisa para descobrir um tamanho estático ideal, como no caso dos arrays C; um vetor cresce conforme necessário e pode ser redimensionado para maior ou menor manualmente, se necessário. Em segundo lugar, os vetores oferecem limites de verificação com aat
função membro (mas não comoperator[]
), para que você possa fazer algo se fizer referência a um índice inexistente, em vez de simplesmente observar o travamento do programa ou pior, continuar a execução com dados corrompidos.- Livro de receitas C ++