Vetor na biblioteca de modelos padrão C ++ (STL) com exemplo

O que é um vetor C ++?

PARA VETOR C ++ é um array dinâmico capaz de se redimensionar automaticamente. O redimensionamento ocorre após um elemento ter sido adicionado ou excluído do vetor. O armazenamento é feito automaticamente pelo container. Os elementos de um vetor são armazenados em um armazenamento contíguo. Isso permite que os programadores C ++ acessem e percorram os elementos do vetor usando iteradores.

A inserção de novos dados em um vetor é feita no seu final. Isso leva um tempo diferencial. A remoção de um elemento de um vetor leva um tempo constante. O motivo é que não há necessidade de redimensionar o vetor. A inserção ou exclusão de um elemento no início do vetor leva um tempo linear.

Neste Tutorial C ++, você aprenderá:

Quando usar um vetor?

Um vetor C ++ deve ser usado nas seguintes circunstâncias:

  • Ao lidar com elementos de dados que mudam de forma consistente.
  • Se o tamanho dos dados não for conhecido antes do início, o vetor não exigirá que você defina o tamanho máximo do contêiner.

Como inicializar vetores em C ++

A sintaxe dos vetores em C ++ é:

 vector name (items) 
  • Conforme mostrado acima, começamos com a palavra-chave vector.
  • O tipo de dados é o tipo de dados dos elementos a serem armazenados no vetor.
  • O nome é o nome do vetor ou dos elementos de dados.
  • Os itens denotam o número de elementos para os dados do vetor. Este parâmetro é opcional.

Iteradores

O objetivo dos iteradores é nos ajudar a acessar os elementos armazenados em um vetor. É um objeto que funciona como um ponteiro. Aqui estão os iteradores comuns suportados por vetores C ++:

  • vector :: begin (): ele fornece um iterador que aponta para o primeiro elemento do vetor.
  • vector :: end (): ele fornece um iterador que aponta para o elemento anterior ao final do vetor.
  • vector :: cbegin (): é o mesmo que vector :: begin (), mas não tem a capacidade de modificar elementos.
  • vector :: cend (): é o mesmo que vector :: end (), mas não pode modificar os elementos do vetor.

Modificadores

Os modificadores são usados ​​para alterar o significado do tipo de dados especificado. Aqui estão os modificadores comuns em C ++:

  • vector :: push_back (): Este modificador empurra os elementos de trás.
  • vector :: insert (): Para inserir novos itens em um vetor em um local especificado.
  • vector :: pop_back (): Este modificador remove os elementos do vetor da parte de trás.
  • vector :: erase (): É usado para remover uma série de elementos do local especificado.
  • vector :: clear (): Ele remove todos os elementos do vetor.

Exemplo 1

 #include #include using namespace std; int main() { vector nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << 'Output from begin and end: '; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << ' '; cout << '
Output from cbegin and cend: '; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << ' '; return 0; } 

Saída:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e gravar no console.
  2. Inclua o arquivo de cabeçalho do vetor em nosso código. Isso nos permitirá trabalhar com vetores em C ++.
  3. Inclua o namespace std para usar suas classes e funções sem chamá-lo.
  4. Chame a função main () dentro da qual a lógica do programa deve ser adicionada.
  5. O {marca o início do corpo da função main ().
  6. Declare um vetor denominado nums para armazenar um conjunto de inteiros.
  7. Crie um loop for para nos ajudar a iterar sobre o vetor. A variável nos ajudará a iterar sobre os elementos do vetor, de 1sta 5ºelementos
  8. Empurre os elementos para o vetor num a partir da parte de trás. Para cada iteração, isso adicionará o valor atual da variável a ao vetor, que é de 1 a 5.
  9. Imprima algum texto no console
  10. Use uma variável iterativa a para iterar sobre os elementos do vetor nums, do início ao último elemento. Observe que estamos usando os iteradores vector :: begin () e vector :: end ().
  11. Imprime os valores apontados pela variável do iterador an no console para cada iteração.
  12. Imprima algum texto no console. O n é um caractere de nova linha, movendo o cursor para a nova linha para imprimir a partir daí.
  13. Use uma variável iteradora para iterar sobre os elementos dos números do vetor do início ao elemento anterior ao fim. Observe que estamos usando os iteradores vector :: cbegin () e vector :: cend ().
  14. Imprima os valores apontados pela variável do iterador a no console para cada iteração.
  15. A função principal deve retornar um valor se o programa for executado com êxito.
  16. Fim do corpo da função main ().

Exemplo 2

 #include #include using namespace std; int main() { vector nums; nums.assign(5, 1); cout << 'Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.push_back(2); int n = nums.size(); cout << '
Last element: ' << nums[n - 1]; nums.pop_back(); cout << '
Vector contents: '; for (int a = 0; a < nums.size(); a++) cout << nums[a] << ' '; nums.insert(nums.begin(), 7); cout << '
First element: ' << nums[0]; nums.clear(); cout << '
Size after clear(): ' << nums.size(); } 

Saída:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream em nosso código para usar suas funções.
  2. Inclua o arquivo de cabeçalho de vetor em nosso código para usar suas funções.
  3. Inclua o namespace std para usar suas classes sem chamá-lo.
  4. Chame a função main (). A lógica do programa deve ser adicionada dentro de seu corpo.
  5. O início do corpo da função main ().
  6. Declare um vetor denominado nums para armazenar alguns valores inteiros.
  7. Armazene 5 elementos nos números do vetor. Cada um com um valor de 1.
  8. Imprima algum texto no console
  9. Use uma variável iteradora a para iterar sobre os elementos do vetor nums.
  10. Imprima os valores dos números do vetor no console para cada iteração.
  11. Adicione o valor 2 ao final dos números do vetor.
  12. Declare uma variável inteira n para armazenar o tamanho dos números do vetor.
  13. Imprime o último valor dos números do vetor junto com outro texto. Ele deve retornar 2.
  14. Remova o último elemento dos números do vetor. Os 2 serão removidos.
  15. Imprima texto no console. O n move o cursor para a nova linha para imprimir o texto lá.
  16. Use uma variável iteradora a para iterar sobre os elementos do vetor nums.
  17. Imprima os valores dos números do vetor no console para cada iteração.
  18. Insira o valor 7 no início dos números do vetor.
  19. Imprime o primeiro valor dos números do vetor junto com outro texto. Ele deve retornar 7.
  20. Exclua todos os elementos dos números do vetor.
  21. Imprima o tamanho do vetor num junto com outro texto após limpar todo o conteúdo. Ele deve retornar 0.
  22. Fim do corpo da função main ().

Capacidade

Use as seguintes funções para determinar a capacidade de um vetor:

  • Tamanho() - Ele retorna o número de itens em um vetor.
  • Tamanho máximo() -Retorna o maior número de itens que um vetor pode armazenar.
  • Capacidade () - É retorna a quantidade de espaço de armazenamento alocado para um vetor.
  • Redimensionar () - É redimensiona o contêiner para conter n itens. Se o tamanho atual do vetor for maior que n, os itens anteriores serão removidos do vetor. Se o tamanho atual do vetor for menor que n, itens extras serão adicionados à parte de trás do vetor.
  • Vazio () –i t retorna verdadeiro se um vetor estiver vazio, caso contrário, retorna falso.

Exemplo 3

 #include #include using namespace std; int main() { vector vector1; for (int x = 1; x <= 10; x++) vector1.push_back(x); cout << 'Vector size: ' << vector1.size()<< endl; cout << 'Vector capacity: ' << vector1.capacity() << endl; cout << 'Maximum size of vector: ' << vector1.max_size()<< endl; vector1.resize(5); cout << 'Vector size after resizing: ' << vector1.size() << endl; if (vector1.empty() == false) cout << 'Vector is not empty'<

Saída:

Aqui está uma captura de tela do código:

Explicação do código:

  1. Inclua o arquivo de cabeçalho iostream em nosso código para usar sua função.
  2. Inclua o arquivo de cabeçalho de vetor em nosso código para usar suas funções.
  3. Inclua o namespace std em nosso código para usar suas classes sem chamá-lo.
  4. Chame a função main (). A lógica do programa deve ser adicionada ao corpo desta função.
  5. Crie um vetor denominado vector1 para armazenar inteiros.
  6. Use um loop for para criar a variável x com valores de 1 a 10.
  7. Empurre os valores da variável x para o vetor.
  8. Imprima o tamanho do vetor junto com outro texto no console.
  9. Imprima a capacidade do vetor junto com outro texto no console.
  10. Imprima o número máximo de itens que o vetor pode conter ao lado de outro texto no console.
  11. Redimensione o vetor para conter apenas 5 elementos.
  12. Imprima o novo tamanho do vetor junto com outro texto.
  13. Verifique se o vetor não está vazio.
  14. Imprima o texto no console se o vetor não estiver vazio.
  15. Use uma instrução else para definir o que fazer se o vetor estiver vazio.
  16. Texto a ser impresso no console se o vetor estiver vazio.
  17. O programa deve retornar um valor após a conclusão bem-sucedida.
  18. Fim do corpo da função main ().

Resumo:

  • Um vetor C ++ é um array dinâmico capaz de se redimensionar automaticamente quando um elemento é adicionado ou excluído dele.
  • O armazenamento de um vetor é feito automaticamente pelo contêiner.
  • Os elementos de um vetor são armazenados em um armazenamento contíguo para serem acessados ​​e percorridos usando iteradores.
  • A inserção de novos dados em um vetor é feita no seu final.
  • A inserção de dados em um vetor leva um tempo diferencial.
  • A remoção de um elemento de um vetor leva um tempo constante.
  • A inserção ou exclusão de um elemento no início leva um tempo linear.
  • Os vetores devem ser usados ​​ao lidar com elementos de dados que mudam de forma consistente.
  • Além disso, você pode usar vetores se o tamanho dos dados não for conhecido antes de começar.