Diferenças entre Vector e List em C++

Escrito por mike wallace | Traduzido por andré luís da costa mendonça
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Diferenças entre Vector e List em C++
Apesar de serem parecidas, listas e vetores tem características distintas (Ablestock.com/AbleStock.com/Getty Images)

A biblioteca do template padrão do C++ contém duas estruturas de dados similares, porém distintas: o vector (vetor) e a list (lista). Um vetor é um conjunto de dados sequencialmente organizados na memória que pode aumentar e diminuir dinamicamente; uma lista é um grupo de itens conectados que não estão necessariamente sequencialmente arranjados na memória, mas podem se contiguamente acessados, pois cada um possui uma ligação para o próximo da lista.

Outras pessoas estão lendo

Velocidade de insersão

Os dados armazenados em um vetor são organizados sequencialmente em memória, o que significa que se você insere um item no início de um vetor, todos itens nele devem ser 'afastados'. Isso é computacionalmente caro, especialmente para vetores grandes. Essa perda na performance ocorre sempre que um item é adicionado ou removido de um lugar que não seja o do último elemento do vetor. Em uma lista, os dados não estão necessariamente ordenados sequencialmente na memória; ao invés disso, cada item na lista possui um link para o próximo item. Quando você insere em uma lista, o item pode ser colocado em qualquer lugar na memória, o que torna a inserção em uma lista menos custosa em comparação a uma mesma operação em um vetor.

Ordenação

A lista tem uma função de ordenação interna que permite a você ordenar os itens de acordo com um critério dado. O vetor, entretanto, não tem uma função semelhante, então é preciso escrever seu próprio código de ordenação.

Acesso aleatório

As listas têm acesso aleatório mais lento em comparação com vetores. Em um vetor, um elemento pode ser acessado diretamente por seu índice. Isso permite acesso aleatório muito rápido. Em uma lista, diferentemente, você só pode acessar diretamente o primeiro e o último elemento; é preciso iterar através da lista para acessar outros elementos; isso pode ser muito lento para listas grandes.

Alteração de tamanho

Os vetores crescem dinamicamente de acordo com a adição de itens. Quando um vetor cresce, ele dobra o número de itens que podem ser armazenados. Isso pode forçar que todos os dados sejam movidos para outra área de memória, o que pode ser computacionalmente caro. As listas não armazenam seus elementos contiguamente em memória, assim elas podem crescer e diminuir item por item sem a necessidade de copiar a lista inteira para outro local.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível