Como Iterar Embora um Vetor em C++
-
Use
for
Loop para iterar sobre o vetor - Utilizar Loop baseado na faixa para Iterar sobre Vector
-
Utilize
std::for_each
Algoritmo para Iterar sobre Vetor
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;
}
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