Como Iterar Embora um Vetor em C++

Jinku Hu 12 outubro 2023
  1. Use for Loop para iterar sobre o vetor
  2. Utilizar Loop baseado na faixa para Iterar sobre Vector
  3. Utilize std::for_each Algoritmo para Iterar sobre Vetor
Como Iterar Embora um Vetor em C++

Este artigo introduzirá alguns métodos para iterar através do vetor C++ usando diferentes loops. Note que o código da amostra utiliza a operação cout para imprimir elementos durante a iteração para melhor demonstração.

Use for Loop para iterar sobre o vetor

O primeiro método é for loop, que consiste em uma declaração em três partes, cada uma separada por vírgulas. Começamos definindo e inicializando a variável i a zero. A próxima parte compara a variável i ao número de elementos no vector, que é recuperado com o método size(). A última parte é executada a cada iteração como uma parte de comparação, e incrementa o i por um.

#include <iostream>
#include <vector>

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

int main() {
  vector<string> str_vec = {"bit",    "nibble",     "byte",      "char",
                            "int",    "long",       "long long", "float",
                            "double", "long double"};

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

  return EXIT_SUCCESS;
}

Resultado:

bit - nibble - byte - char - int - long - long long - float - double - long double -

Utilizar Loop baseado na faixa para Iterar sobre Vector

O loop pode se tornar bastante difícil de ler em alguns casos, e é por isso que existe uma estrutura alternativa chamada loop com base em uma gama. Esta versão é mais adequada para iterar estruturas de contêineres excessivamente complicadas e oferece características flexíveis para acessar elementos. Veja o seguinte exemplo de código:

#include <iostream>
#include <vector>

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

int main() {
  vector<string> str_vec = {"bit",    "nibble",     "byte",      "char",
                            "int",    "long",       "long long", "float",
                            "double", "long double"};

  for (auto item : str_vec) {
    cout << item << " - ";
  }
  cout << endl;

  return EXIT_SUCCESS;
}

Utilize std::for_each Algoritmo para Iterar sobre Vetor

Os algoritmos STL têm características extensas prontas para uso, e um desses métodos é para iteração, que tem como argumentos: alcance e a função a ser aplicada aos elementos do alcance. O exemplo a seguir demonstra como podemos declarar um objeto de função com a expressão lambda e depois aplicar este custom_func aos elementos vetoriais com uma declaração.

#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};
  auto custom_func = [](auto &i) { i *= i; };

  for_each(int_vec.begin(), int_vec.end(), custom_func);
  for (auto i : int_vec) cout << i << "; ";
  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