Arrays vs Vectors: Semelhanças e Diferenças Introdutórias [closed]

Quais são as diferenças entre uma matriz e um vetor em C ++? Um exemplo das diferenças pode ser incluído bibliotecas, simbolismo, habilidades, etc.

Matriz

Matrizes contêm um número específico de elementos de um determinado tipo. Para que o compilador possa reservar a quantidade necessária de espaço quando o programa é 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. Depois que uma matriz tiver sido definida, você usará o identificador da matriz junto com um índice para acessar elementos específicos da matriz. [...] matrizes são indexadas em zero; ou seja, o primeiro elemento está no índice 0. Esse 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 do bolso de C ++

Vetor

Um vetor é uma seqüência de objetos de tamanho dinâmico que fornece um estilo de matrizoperator[] acesso aleatório. A função de membropush_back copia seus argumentos via construtor de cópia, adiciona essa cópia como o último item no vetor e incrementa 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 consome tempo constante amortizado e a inserção ou exclusão de qualquer outro local leva um tempo linear. Esses são os fundamentos dos vetores. Há muito mais para eles. Na maioria dos casos, um vetor deve ser sua primeira escolha em um array no estilo C. Primeiro de tudo, eles são dimensionados dinamicamente, o que significa que eles podem crescer conforme necessário. Você não precisa fazer todo tipo de pesquisa para descobrir um tamanho estático ideal, como no caso de arrays C; um vetor cresce conforme o necessário, e pode ser redimensionado maior ou menor manualmente, se necessário. Em segundo lugar, os vetores oferecem verificação de limites com oat função de membro (mas não comoperator[]), para que você possa fazer algo se fizer referência a um índice inexistente em vez de simplesmente assistir a uma falha no programa ou pior, continuando a execução com dados corrompidos.

- Livro de Receitas C ++

questionAnswers(3)

yourAnswerToTheQuestion