Como imprimir o conteúdo de um vetor em C++

Jinku Hu 12 outubro 2023
  1. Utilize for Loop com notação de acesso de elementos para imprimir conteúdo vetorial
  2. Utilizar Loop Baseado em Alcance com Notação de Acesso aos Elementos para Imprimir o Conteúdo Vetorial
  3. Utilize std::copy para imprimir o conteúdo vetorial
  4. Utilize std::for_each para imprimir o conteúdo vetorial
Como imprimir o conteúdo de um vetor em C++

Este artigo introduzirá vários métodos sobre como imprimir conteúdos vetoriais em C++.

Utilize for Loop com notação de acesso de elementos para imprimir conteúdo vetorial

Os elementos vetcor podem ser acessados com o método at() ou o operador []. Nesta solução, nós demonstramos ambos e imprimimos o conteúdo com o fluxo cout. Inicialmente, inicializamos a variável vetorial com inteiros arbitrários e depois fazemos um loop através de seus elementos um por um para imprimir o fluxo.

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  for (size_t i = 0; i < int_vec.size(); ++i) {
    cout << int_vec.at(i) << "; ";
  }
  cout << endl;

  for (size_t i = 0; i < int_vec.size(); ++i) {
    cout << int_vec[i] << "; ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Resultado:

1; 2; 3; 4; 5; 6; 7; 8; 9; 10;
1; 2; 3; 4; 5; 6; 7; 8; 9; 10;

Utilizar Loop Baseado em Alcance com Notação de Acesso aos Elementos para Imprimir o Conteúdo Vetorial

A solução anterior é relativamente simples, mas parece bastante verbosa. O C++ contemporâneo oferece formas mais flexíveis de expressar iterações, sendo uma delas o loop baseado no alcance. É considerado mais legível quando os loops fazem operações relativamente sem esforço e não precisam ser paralelizados.

#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::string;
using std::vector;

int main() {
  vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  for (const auto &item : int_vec) {
    cout << item << "; ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Utilize std::copy para imprimir o conteúdo vetorial

Um método bastante avançado de fazer a iteração vetorial e as operações de saída em uma declaração é chamar a função copy, definida na biblioteca amálgama>. Este método toma uma faixa vetorial especificada com iteradores, e como terceiro argumento, passamos o ostream_iterator para redirecionar o conteúdo da faixa para o cout stream.

#include <algorithm>
#include <iostream>
#include <iterator>
#include <vector>

using std::cin;
using std::copy;
using std::cout;
using std::endl;
using std::ostream_iterator;
using std::vector;

int main() {
  vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  copy(int_vec.begin(), int_vec.end(), ostream_iterator<int>(cout, "; "));
  cout << endl;

  return EXIT_SUCCESS;
}

Utilize std::for_each para imprimir o conteúdo vetorial

Outro algoritmo STL para fazer a iteração e as operações de saída em uma única declaração é for_each. Este método pode aplicar um determinado objeto de função a cada elemento da faixa especificada, o que é uma ferramenta poderosa a ter. Neste caso, passamos a expressão lambda, que imprime os elementos para o fluxo de saída.

#include <algorithm>
#include <iostream>
#include <vector>

using std::cin;
using std::cout;
using std::endl;
using std::for_each;
using std::vector;

int main() {
  vector<int> int_vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

  for_each(int_vec.begin(), int_vec.end(),
           [](const int& n) { cout << n << "; "; });
  cout << endl;

  return EXIT_SUCCESS;
}
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - C++ Vector