Comment ôter un vecteur en C++
-
Utiliser la boucle
for
pour itéréer sur le vecteur - Utilisation de la boucle à distance pour itération sur le vecteur
-
Utilisez
std::for_each
Algorithme pour itérer sur le vecteur
Cet article présente quelques méthodes pour itérer à travers le vecteur C++ en utilisant différentes boucles. Notez que l’exemple de code utilise l’opération cout
pour imprimer les éléments pendant l’itération pour une meilleure démonstration.
Utiliser la boucle for
pour itéréer sur le vecteur
La première méthode est la boucle for
, qui consiste en une déclaration en trois parties séparées par des virgules. Nous commençons par définir et initialiser la variable i
à zéro, ce qui n’est fait qu’une fois. La partie suivante compare la variable i
au nombre d’éléments dans le vector
, qui est récupéré avec la méthode size()
. La dernière partie est exécutée à chaque itération comme une partie de comparaison, et elle incrémente i
de un.
#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;
}
Production:
bit - nibble - byte - char - int - long - long long - float - double - long double -
Utilisation de la boucle à distance pour itération sur le vecteur
La boucle for
peut devenir assez difficile à lire dans certains cas, et c’est pourquoi il existe une structure alternative appelée boucle à distance. Cette version est mieux adaptée à l’itération de structures de conteneurs trop compliquées et offre des fonctionnalités flexibles pour accéder aux éléments. Voir l’exemple de code suivant:
#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;
}
Utilisez std::for_each
Algorithme pour itérer sur le vecteur
Les algorithmes STL disposent de nombreuses fonctionnalités prêtes à l’emploi, et l’une de ces méthodes est l’itération, qui prend comme arguments : la portée et la fonction à appliquer aux éléments de la portée. L’exemple suivant montre comment nous pouvons déclarer un objet de fonction avec l’expression lambda
et ensuite appliquer cette custom_func
aux éléments vectoriels avec une déclaration.
#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