Clique sobre os tópicos listados abaixo para navegar até o conteúdo desejado.

  1. Declarar vetor/array
  2. Acessando/alterando elementos
  3. Percorrer um vetor
  4. Copiar um vetor
  5. Copiar um vetor com <array>
  6. Descobrir o tamanho de um vetor
  7. Vetor como parâmetro e argumento
  8. Vetor como retorno de função
  9. Classe Array e métodos

C++ possui uma classe Array a qual fornece métodos que simplificam o trabalho com vetores estáticos. Outras operações além das abordadas nesta seção devem ser feitas utilizando essa classe que pode ser vista em Array.

Em C++ podemos criar vetores estáticos a partir dos tipos de dados já estudados. Podemos enxergar um vetor como um local para armazenar variáveis de forma sequencial.

Tab. 1: Vetor de int
0 1 2 3 4 5 (...)
0 10 20 30 40 50 ?

A declaração de um vetor na linguagem C++ é feita utilizando um tipo de dado deseja para uma variável e sua dimensão entre [] que é mas sintaxe utilizada pela linguagem C, exceto pela atribuição usando um mesmo valor inicial para todos os elementos.

Sintaxe
tipo_dado nome_vetor[dimensao] = {valores}; //iniciado
tipo_dado nome_vetor[dimensao]; //não iniciado com espaço reservado
tipo_dado nome_vetor[dimensao] = {valor_inicial}; //todos elementos inciados com valor inicial

Um vetor com valores iniciados devem ter seus valores, baseados no tipo de dado utilizado, delimitados por { e }, separados por (,) e terminados com (;). Uma vez declarado, sua dimensão não pode ser mais alterada.

Exemplo 1
#include <iostream>
using namespace std;

int main()
{
    int vet1[] = {1,2,3}; //tamanho baseado em elementos atribuídos
    int vet2[3] = {1,2,3}; //tamanho predefinido
    int vet3[3]; //espaço reservado
    int vet4[3] = {0}; //todos elementos iniciados com 0
}

A linguagem C++, diferente de C, permite que um vetor seja iniciada quando suas dimensões são baseadas em variáveis.

Sintaxe
tipo_dado nome_vetor[nome_variavel];
Exemplo 2
#include <iostream>
using namespace std;

int main()
{
    int qtd = 3;
    int vet2[qtd] = {1,2,3};
    int vet3[qtd]; 
    int vet4[qtd] = {0};
}

Todos os tipos de dados podem ser utilizados para criação de vetores como char, float , struct, string e outros tipos de dados nativos.

O acesso aos elementos de vetor é feita utilizando o seus índices que são passados como argumentos para o indexador [].

Sintaxe: alteração
nome_vetor[indice] = valor;
Sintaxe: acesso
nome_vetor[indice];
Exemplo 3
#include <iostream>
using namespace std;

int main(void)
{
    int vetor[2];
    
    vetor[0] = 1;
    vetor[1] = 2;
    
    cout << vetor[0];

    return 0;
}
Saída
1

Para iterarmos ou percorrermos vetores em C++, assim como em C, podemos utilizar o comando for que foi estudado em C++ Básico: Comandos for.

Quando trabalhamos com vetor, precisamos de uma variável auxiliar que servirá como índice ou posição de um elemento.

Exemplo 4
#include <iostream>
using namespace std;
int main(void)
{

  int vetor[5] = { -1, 9, 235, 10, 0xff };
  int indice;

  for (indice = 0; indice < 5; indice++)
  {
      cout << vetor[indice] << " ";
  }

  return 0;
}
Saída
-1 9 235 10 255

O tamanho de uma vetor pode ser calculado utilizando o operador sizeof que será visto visto mais adiante.

Para copiarmos o conteúdo vetores, acessamos seus elementos e os copiamos para um novo vetor. O comando for aprendido em C++ Básico: Comandos de repetição será utilizado.

Quando trabalhamos com vetor, precisamos de uma variável auxiliar que servirá como índice para ambos os vetores como índice de origem e destino para cópia do elemento.

Exemplo 5
#include <iostream>
using namespace std;

int main (void)
{
  int origem[5] = { -1, 9, 235, 10, 0xff };
  int destino[5];
  
  int indice;
  for (indice = 0; indice < 5; indice++)
  {
      destino[indice] = origem[indice]; //cópia
  }
  for (indice = 0; indice < 5; indice++)
  {
      cout << vetor[indice] << " ";
  }
  return 0;
}}
Saída
-1 9 235 10 255

Outras formas para copiar vetores serão vistas em futuras atualizações.

Vetores estáticos armazenam certas quantidades de elementos. Esses elementos possuem um tamanho em bytes em memória. Levando isso em consideração, não podemos confundir a quantidade de elementos com o tamanho do vetor.

Exemplo 6
int vetor[3] = {1,2,3}; 

No exemplo acima temos um vetor de int com uma capacidade de armazenamento de 3 elementos. Porém, cada elemento possui o tamanho de 4 bytes. Assim podemos calcular o tamanho de um vetor como sendo:

Fórmula 1
tamanho = numero_elementos*tamanho_tipo_dado

Para descobrirmos os tamanho em bytes de um vetor utilizamos o operador sizeof que pode receber como argumento um vetor.

Exemplo 5
#include <iostream>
using namespace std;
int main()
{
    int vetor[2];
    cout << sizeof(vetor);
    return 0;
}
Saída
8

Quando a temos conhecimento do tipo de dado de um vetor, podemos utilizar a fórmula abaixo para descobrir o número de seus de elementos:

Fórmula 2
capacidade = tamanho_vetor/tamanho_tipo_dado
Exemplo 7
#include <iostream>
using namespace std;

int main()
{
    int vetor[2];
    cout << (sizeof(vetor)/sizeof(int));
    return 0;
}
Saída
2

Para vetores do tipo de dado char, o tamanho do vetor em byte e o número de elementos são os mesmos retornados pelo operador sizeof.

Para utilizar vetores como parâmetro de funções em C++ é simples como em C. Basta definirmos o tipo e nome do nome do parâmetro, seguido de [] que indica que queremos trabalhar com um vetor.

Sintaxe : Declaração
tipo_retorno nome_funcao(tipo_dado param[], int dimensao); //protótipo
tipo_retorno nome_funcao(tipo_dado param[dimensao]); //protótipo
Sintaxe: Uso
nome_funcao(variavel_vetor, dimensao); 

As sintaxe A e B acima mostram a declaração de um protótipo de uma função e a passagem de um vetor como argumento respectivamente.

Exemplo 8
#include <iostream>
using namespace std;

void funcao(int v[],int tam)
{
    //mainpulação de v[] aqui
    cout << v[0] << endl;
}
 
int main() 
{
    int vt[3] = {999,1,2};
    funcao(vt,3);
    return 0;
}
Saída
999

O retorno de vetores em funções é feito utilizando um ponteiro que é informado como tipo de retorno da função. O assunto ponteiro pode ser visto em C++ Básico: Ponteiros.

A linguagem C++, assim como C, não permite que a referência de uma variável local seja retorna de uma função. Para isso, precisamos declarar a variável local como static.

Sintaxe
tipo_retorno *nome_funcao(<lista_parametros>); //protótipo
Exemplo 9
#include <iostream>
using namespace std;

int *vetor(void);

int main()
{
    int *v = vetor();
    int i;
    for(i = 0; i < 3 ; i++)
       cout << v[i] << " ");
        
    return 0;
}

int *vetor(void)
{  
    static int v[3] = {1,2,3};
    return v;
}
            

Como a linguagem C++ não armazena informação sobre as dimensões dos vetores estáticos é necessário ter conhecimento dessas informações para trabalhar com esses tipos de dados.

  1. 28/07/2025 - revisão 3 - correções: pontuais, links, links 'Objetivos'; ajuste em sintaxes; adiçao de Ex. 1 e 2
  2. 30/09/2024 - revisão 2 - Correções pontuais e outros ajustes
  3. 09/02/2024 - revisão 1 - correção em navegação, css, exemplos e erros gramaticais
  4. 30/06/2023 - versão inicial