A C + + Standard Template Library contém dois recipientes distintos mas semelhantes : o vetor ea lista . Um vetor é um conjunto de sequencialmente dispostos dados que podem aumentar ou diminuir de forma dinâmica , uma lista é um conjunto de itens relacionados que não são necessariamente dispostas sequencialmente na memória, mas pode ser acessado sequencialmente porque cada item tem um link para o próximo item. Aprender as diferenças entre o vetor ea lista pode ajudá-lo a escrever mais soluções otimizadas em C + +. Inclusão velocidade
Os dados contidos por um vetor é organizado seqüencialmente na memória , o que significa que, se você inserir um item no início de um vetor , cada item do vetor deve ser movido "para baixo" por um . Este é computacionalmente dispendioso , especialmente para grandes vectores . Esta penalidade de desempenho vem sempre que um item é inserido ou removido de qualquer local , exceto o último elemento do vetor. Com uma lista , os dados não são necessariamente organizadas sequencialmente na memória , em vez disso , cada item da lista contém um link para o próximo item na lista. 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 muito menos caro do que a inserção em um vetor .
Classificação
o recipiente lista tem uma função tipo built-in que permite classificar os itens com base em um determinado critério . O vetor, no entanto, não tem essa função interna e, portanto, você deve escrever o código de classificação a si mesmo se você quiser classificar um vetor.
Random Access
< br > Listas
têm tempos de acesso aleatório mais lento do que vetores. Em um vetor, um elemento pode ser acessado diretamente pelo seu índice. Isto dá o vetor tempo de acesso muito rápido aleatória. Com uma lista , por outro lado , você pode acessar diretamente apenas o primeiro e último elementos , você deve percorrer a lista para acessar outros elementos , o que pode ser muito lento para grandes listas
redimensionamento .
Vetores crescer dinamicamente à medida que os itens são adicionados a eles. Quando um vetor cresce, ela dobra o número de itens que ele pode conter. Isso pode forçar todo o vetor para ser transferida para outro local na memória , o que pode ser computacionalmente caro. Listas não precisa guardar os seus elementos de forma contígua na memória, e pode, portanto, aumentar ou diminuir um item de cada vez, sem nunca precisar de copiar a lista inteira para um novo local.
< Br >