Vetor em C++ Biblioteca de modelos padrão (STL) com exemplo

⚡ Resumo Inteligente

Vetor em C++ É um array dinâmico da Biblioteca de Modelos Padrão (STL) que se redimensiona automaticamente à medida que elementos são adicionados ou removidos, armazenando itens em memória contígua para que os programadores possam acessá-los e percorrê-los usando iteradores.

  • 📦 Matriz dinâmica: A C++ Um vetor cresce ou diminui automaticamente, ao contrário de uma matriz estática de tamanho fixo.
  • 🧩 Cabeçalho e sintaxe: Inclua o cabeçalho do vetor e, em seguida, declare o vetor. Nome para armazenar elementos tipados.
  • 🧭 Iteradores: begin(), end(), cbegin() e cend() percorrem os elementos do vetor como ponteiros.
  • 🛠️ Modificadores: push_back(), insert(), pop_back(), erase() e clear() alteram o conteúdo do vetor.
  • 📐 Capacidade: size(), capacity(), max_size(), resize() e empty() reportam ou ajustam o armazenamento.
  • 🤖 Assistência de IA: O GitHub Copilot e assistentes de IA semelhantes estruturam operações vetoriais a partir de um breve comentário.

C++ STL vetorial

O que é uma C++ Vetor?

A C++ Vector é um array dinâmico capaz de se redimensionar automaticamente. O redimensionamento ocorre após um elemento ser adicionado ou excluído do vetor. O armazenamento é feito automaticamente pelo contêiner. Os elementos de um vetor são armazenados em armazenamento contíguo. Isso permite C++ programadores para acessar e percorrer os elementos vetoriais usando iteradores.

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

Antes de escrever código com vetores, é útil saber quando eles são o contêiner adequado para usar.

Quando usar um vetor?

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

  • Ao lidar com elementos de dados que mudam consistentemente.
  • Se o tamanho dos dados não for conhecido previamente, 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 <data-type> 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.
  • O Unid Indica o número de elementos do vetor de dados. Este parâmetro é opcional.

Uma vez que um vetor existe, os iteradores fornecem uma maneira semelhante a um ponteiro para percorrer seus elementos.

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... C++ vetores:

  • vetor::início(): fornece um iterador que aponta para o primeiro elemento do vetor.
  • vetor::fim(): fornece um iterador que aponta para o elemento posterior ao final do vetor.
  • vetor::cbegin(): É o mesmo que vector::begin(), mas não tem a capacidade de modificar elementos.
  • vetor::cend(): É o mesmo que vector::end(), mas não pode modificar elementos do vetor.

O exemplo a seguir preenche um vetor e, em seguida, percorre-o usando iteradores mutáveis ​​e constantes.

Exemplo 1

#include <iostream> 
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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 << "\nOutput from cbegin and cend: ";

	for (auto a = nums.cbegin(); a != nums.cend(); ++a)

		cout << *a << " ";

	return 0;
}

Saída:

C++ Iteradores vetoriais Exemplo 1 saída

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

C++ Iteradores vetoriais Exemplo 1 código

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso código. Isso nos permitirá ler e escrever no console.
  2. Inclua o arquivo de cabeçalho vetorial 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 chamado nums para armazenar um conjunto de inteiros.
  7. Crie um laço `for` para nos ajudar a iterar sobre o vetor. A variável nos ajudará a iterar sobre os elementos do vetor, do 1º ao 5º elemento.
  8. Empurre os elementos para o vetor num por 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 iteradora a para iterar sobre os elementos do vetor nums desde o início até o elemento após o fim. Observe que estamos usando iteradores vector::begin() e vector::end().
  11. Imprima os valores apontados pela variável iteradora a 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 do vetor `nums` do início até o elemento que ultrapassa o final. Observe que estamos usando os iteradores `vector::cbegin()` e `vector::cend()`.
  14. Imprima os valores apontados pela variável iteradora a no console para cada iteração.
  15. A função principal deve retornar um valor se o programa for executado com sucesso.
  16. Fim do corpo da função main().

Modificadores

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

  • vetor::push_back(): Este modificador empurra os elementos por trás.
  • vetor::inserir(): Para inserir novos itens em um vetor em um local especificado.
  • vetor::pop_back(): Este modificador remove os elementos do vetor da parte traseira.
  • vetor::apagar(): É usado para remover um intervalo de elementos do local especificado.
  • vetor::claro(): Remove todos os elementos do vetor.

O próximo exemplo aplica esses modificadores em sequência para ver como um vetor se altera.

Exemplo 2

#include <iostream>
#include <vector> 

using namespace std;
int main()
{
	vector<int> 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 << "\nLast element: " << nums[n - 1];

	nums.pop_back();

	cout << "\nVector contents: ";
	for (int a = 0; a < nums.size(); a++)
		cout << nums[a] << " ";

	nums.insert(nums.begin(), 7);

	cout << "\nFirst element: " << nums[0];
	
	nums.clear();
	cout << "\nSize after clear(): " << nums.size();			
}

Saída:

C++ Modificadores vetoriais Exemplo 2 saída

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

C++ Modificadores vetoriais Exemplo 2 código

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso código para usar suas funções.
  2. Inclua o arquivo de cabeçalho vetorial 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 do seu corpo.
  5. O início do corpo da função main().
  6. Declare um vetor chamado nums para armazenar alguns valores inteiros.
  7. Armazene 5 elementos no vetor nums. Cada um com valor 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 do vetor nums.
  12. Declare uma variável inteira n para armazenar o tamanho do vetor nums.
  13. Imprima o último valor do vetor nums junto com outro texto. Deve retornar um 2.
  14. Remova o último elemento do vetor nums. Os 2 serão removidos.
  15. Imprima o 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 do vetor nums.
  19. Imprima o primeiro valor do vetor nums junto com outro texto. Deve retornar 7.
  20. Exclua todos os elementos do vetor nums.
  21. Imprima o tamanho do vetor num junto com outro texto depois de limpar todo o conteúdo. Deve retornar 0.
  22. Fim do corpo da função main().

Capacidade

Use o seguinte funções Para determinar a capacidade de um vetor:

  • Tamanho() – Retorna o número de itens em um vetor.
  • Tamanho máximo() – Retorna o número máximo de itens que um vetor pode armazenar.
  • Capacidade() – Retorna a quantidade de espaço de armazenamento alocado a um vetor.
  • Redimensionar() – Redimensiona o contêiner para conter n itens. Se o tamanho atual do vetor for maior que n, os itens do final serão removidos do vetor. Se o tamanho atual do vetor for menor que n, itens extras serão adicionados ao final do vetor.
  • Vazio() – Retorna verdadeiro se o vetor estiver vazio. Caso contrário, retorna falso.

Este exemplo final relata e ajusta o armazenamento de um vetor usando as funções de capacidade acima.

Exemplo 3

#include <iostream> 
#include <vector> 
using namespace std;
int main() {
	vector<int> 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"<<endl;
	else
		cout << "Vector is empty"<<endl;
	return 0;
}

Saída:

C++ capacidade vetorial Exemplo 3 saída

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

C++ Exemplo de código de capacidade vetorial 3

Code Explicação:

  1. Inclua o arquivo de cabeçalho iostream em nosso código para usar sua função.
  2. Inclua o arquivo de cabeçalho vetorial 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 chamado vector1 para armazenar inteiros.
  6. Use um loop for para criar a variável x com valores de 1 a 10.
  7. Insira os valores da variável x no 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 junto com 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 indicar 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 o valor após a conclusão bem-sucedida.
  18. Fim do corpo da função main().

Perguntas Frequentes

Um vetor é uma matriz dinâmica que redimensiona automaticamente e conhece seu próprio tamanho, enquanto uma matriz nativa tem um comprimento fixo definido em tempo de compilação. Vetores gerenciam a memória para você; matrizes nativas não.

Use o operador de subscrito, como nums[0], para acesso direto rápido. A função membro at(), como nums.at(0), faz o mesmo, mas lança uma exceção out_of_range quando o índice é inválido, tornando-a mais segura.

Declare um vetor cujos elementos sejam eles próprios vetores, por exemplo, vetor > grade. Você pode dimensioná-la com construtores ou linhas push_back. Cada vetor interno pode crescer independentemente, proporcionando uma matriz flexível e redimensionável.

Um vetor armazena elementos em memória contígua com acesso aleatório rápido, enquanto uma std::list é uma lista duplamente encadeada com inserção ou remoção rápidas em qualquer lugar, mas sem indexação direta. Escolha com base no seu padrão de acesso.

Inclua o cabeçalho do algoritmo e chame std::sort com os iteradores begin e end, como em sort(nums.begin(), nums.end()). A ordenação é crescente por padrão; passe um comparador personalizado ou superior. () para classificar em ordem decrescente.

Sim. Um vetor é um modelo e pode conter qualquer tipo, incluindo strings, classes personalizadas e até mesmo outros vetores. Declare o tipo do elemento dentro dos colchetes angulares, como `vector`. ou vetor .

Sim. Os assistentes de codificação por IA transformam um pequeno comando ou comentário em código vetorial funcional, incluindo declaração, loops push_back e iteração. Sempre revise os tipos, limites e gerenciamento de capacidade sugeridos, pois a IA pode não atender a requisitos específicos do projeto.

Sim. Travas deslizantes portáteis Copiloto do GitHub Sugere declarações de vetores, chamadas de `push_back` e `insert`, e loops de iteradores conforme você digita. Lida bem com código repetitivo, embora você ainda deva verificar índices, redimensionamento e lógica antes de compilar.

Resuma esta postagem com: