Diferença entre vetor e lista

Vetor vs lista

Geralmente confuso para os programadores, vetores e listas são sequências usadas em propriedades de array em C ++ e Java. Os dois termos mantêm endereços de matriz, mas com métodos diferentes de retenção de matrizes.
O básico que precisamos saber é que uma matriz é uma "lista" que contém alguns ou todos os dados, isto é, números inteiros, pontos flutuantes ou caracteres e é definida entre colchetes "[]".
Na verdade, vetores e listas agem de acordo com as instâncias. Então, vamos dar uma olhada nesses dois termos, um por um.

Vetores
Os vetores são usados ​​na retenção da matriz e no acesso aos elementos. Aqui você pode acessar qualquer elemento aleatoriamente usando o operador “[]”. Portanto, fica fácil examinar todos os elementos ou um elemento específico com uma operação vetorial. Portanto, se você inserir qualquer objeto no final, no início ou no meio, os vetores terão um ponto positivo, porque você poderá acessar o endereço aleatório e fazer alterações nele. No entanto, os vetores são um pouco lentos em comparação aos objetos da lista. Os vetores são considerados objetos sincronizados, eficientes no acesso aleatório e mantêm os dados adequadamente com uma lista sincronizada. Um vetor é escolhido sempre que não há necessidade de inserir ou excluir no
meio (lista) ou de frente.
O número de elementos em uma matriz pode variar drasticamente.
Exemplo:
vetor V;
Inserção V. (V.begin (), 3);
assert (tamanho V. () == 1 && capacidade V. ()> = 1 && V [0] == 3);

Listas
As listas são "sequências de ligação dupla" que suportam o deslocamento para frente e para trás. O tempo gasto na inserção e exclusão no início, no final e no meio é constante. A inserção e emenda entre listas vinculadas não invalidam nenhuma iteração nos elementos. Somente a remoção invalida a iteração. Eles não são sincronizados e, portanto, não são acessíveis aleatoriamente. A ordem das iterações pode mudar de acordo com o usuário, mas não afeta nenhuma alteração nos elementos. Eles são mais rápidos que vetores e são ideais para inserção e exclusão no início, no meio e no final das listas de elementos.

Exemplo:
#incluir
// lista definição de modelo de classe
... .
int main ()

matriz int [4] = 2, 6, 4, 8;
valores std :: list;
std :: listar outrosValores;

Resumo:
1. Uma lista não é sincronizada enquanto um vetor é.
2. As listas não têm tamanho padrão, enquanto um vetor tem um tamanho padrão 10.
3. Listas e vetores são matrizes que crescem dinamicamente.
4. Uma lista não é segura para threads enquanto um vetor é seguro para threads.
5. As listas, como se aplicam apenas à adição e exclusão na frente e na traseira, são mais rápidas enquanto
vetores levam mais CPU.
6. Um vetor aumenta de tamanho duas vezes, enquanto uma lista diminui para a metade, ou seja, 50%.