Nesta lição, veremos os contêineres e iteradores, e comece com um vetor padrão. O vetor é uma resposta a um problema atrial com matrizes C e C ++. Ou seja, o número de elementos que podem precisar distorcer no contêiner não é fixo e também pode não ser conhecido antecipadamente. Então você não pode alocar o número exato de elementos na matriz, mas os elementos precisarão estar acessíveis da maneira mais eficiente. Aqui, insira o vetor padrão. Vejamos o exemplo. Neste exemplo, temos três vetores sendo construídos. Um é um padrão sem tamanho, um com tamanho, mas sem elementos, e o terceiro usando a inicialização de corrida padrão. Isso vai construir um vetor no lugar com os valores definidos na lista. Agora vamos construir o exemplo e executá-lo. Primeiro, vamos olhar para o elemento, adicionar um elemento do vetor usando o método pushback. Como você pode imaginar, o elemento adiciona via pushback é alocado e adicionado no final do vetor, aumentando o tamanho do vetor e disponibilizando o elemento. E isso é exatamente o que vemos na saída deste programa. No segundo caso, vamos comentar e usar o vetor de teste dois, construir e executar. E com o vetor de teste dois, vemos que o tamanho inicial do vetor é 10. E então podemos definir o elemento usando colchetes ou o operador de referência. Na verdade, podemos definir o elemento zero para o valor 15. E isso é o que vemos na saída da segunda linha para o vetor de teste dois. Os últimos usuários sobre os quais falaremos é como acessar o elemento do vetor. Na verdade, existem dois exemplos de como isso é feito. O primeiro exemplo usa algo semelhante para cada um, que é basicamente o loop for que está se movendo através dos valores dentro do vetor, e, em seguida, exibe seus valores. Na quarta forma, veremos que usaremos índices. Então agora vamos construir. E também recebemos um aviso. O aviso aqui soa pelo fato de que estou declarando variável i como um número inteiro, que tem um tipo atribuído, mas o tamanho não precisa ir para o território negativo. Portanto, o valor para o tamanho, o tipo de retorno do tamanho é na verdade o tipo de tamanho, que geralmente não tem sinal, mas podemos usar o mesmo tipo de tamanho em vez do int e podemos fazer assim. Usando o tipo de tamanho, tipo de tamanho é realmente tipo declarado dentro de um modelo de vetor para definir qual tipo está sendo usado como um tipo de tamanho neste vetor. E geralmente é um size_t. Mas vamos construir isso, e vamos executá-lo. E como você pode ver, o tamanho inicial do vetor é 10, que é um, dois, três, quatro, cinco, seis, sete, oito, nove, 10. E os valores são um, dois, três, quatro, cinco, seis, sete, oito, nove, 10, usando a iteração de valor ou usando o índice. Existem outras formas e métodos de acessar e usar vetores mas isso está além do escopo desta seção específica, embora eu deva apontar que porque o vetor é uma extensão da funcionalidade do array, a memória alocada para o vetor é contígua permitindo grande velocidade de acesso aos dados, mas vem com desvantagens quando se trata para a memória alocada e desalocada. Como a memória do vetor deve ser contígua, memória alocada durante chamadas como pushback ou em reproduções pode ficar caro se a memória necessária para anexar pode não estar disponível diretamente no final do vetor. E todo o vetor pode precisar mudar de sua localização original para a nova. E se o número de elementos for pequeno, pode não ter tanto impacto, mas se o número de elementos for grande, então a mudança pode ficar cara. Algo semelhante acontecerá quando você apagar o vetor. Como o conteúdo deve ser contíguo, todos os elementos por trás do elemento apagado terá que deslocar-se para a frente, incorrendo nas despesas de tempo. Existem maneiras de contornar o primeiro problema, mas não há como contornar facilmente o segundo. Com isso em mente, vamos examinar a fila.