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

Jinku Hu 12 outubro 2023 C++ C++ Vector
  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;
}
Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
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