Vecteur dans la bibliothèque de modèles standard C++ (STL) avec exemple
Qu'est-ce qu'un vecteur C++ ?
Un vecteur C++ est un tableau dynamique capable de se redimensionner automatiquement. Le redimensionnement se produit après qu'un élément a été ajouté ou supprimé du vecteur. Le stockage est géré automatiquement par le conteneur. Les éléments d'un vecteur sont stockés dans une mémoire contiguë. Cela permet aux programmeurs C++ d'accéder et de parcourir les éléments vectoriels à l'aide d'itérateurs.
L'insertion de nouvelles données dans un vecteur se fait à sa fin. Cela prend un temps différentiel. La suppression d'un élément d'un vecteur prend un temps constant. La raison en est qu'il n'est pas nécessaire de redimensionner le vecteur. L'insertion ou la suppression d'un élément au début du vecteur prend un temps linéaire.
Dans ce didacticiel C++, vous apprendrez :
- Qu'est-ce qu'un vecteur C++ ?
- Quand utiliser un vecteur ?
- Comment initialiser des vecteurs en C++
- Itérateurs
- Modificateurs
- Exemple 1
- Exemple 2
- Capacité
- Exemple 3
Quand utiliser un vecteur ?
Un vecteur C++ doit être utilisé dans les circonstances suivantes :
- Lorsque vous traitez des éléments de données qui changent régulièrement.
- Si la taille des données n'est pas connue avant de commencer, le vecteur ne vous demandera pas de définir la taille maximale du conteneur.
Comment initialiser des vecteurs en C++
La syntaxe des vecteurs en C++ est :
vector <data-type> name (items)
- Comme indiqué ci-dessus, nous commençons par le mot-clé vecteur.
- Le type de données est le type de données des éléments à stocker dans le vecteur.
- Le nom est le nom du vecteur ou des éléments de données.
- Les éléments indiquent le nombre d'éléments pour les données du vecteur. Ce paramètre est facultatif.
Itérateurs
Le but des itérateurs est de nous aider à accéder aux éléments stockés dans un vecteur. C'est un objet qui fonctionne comme un pointeur. Voici les itérateurs courants pris en charge par les vecteurs C++ :
- vecteur ::begin() : il donne un itérateur qui pointe vers le premier élément du vecteur.
- vecteur ::fin() : il donne un itérateur qui pointe vers l'élément après la fin du vecteur.
- vecteur ::cbegin() : c'est la même chose que vector::begin(), mais il n'a pas la capacité de modifier les éléments.
- vecteur ::cend() : c'est la même chose que vector::end() mais ne peut pas modifier les éléments vectoriels.
Modificateurs
Les modificateurs sont utilisés pour changer la signification du type de données spécifié. Voici les modificateurs courants en C++ :
- vecteur ::push_back() : Ce modificateur pousse les éléments vers l'arrière.
- vecteur ::insert() : Pour insérer de nouveaux éléments dans un vecteur à un emplacement spécifié.
- vecteur ::pop_back() : Ce modificateur supprime les éléments vectoriels de l'arrière.
- vecteur ::effacer() : Il est utilisé pour supprimer une plage d'éléments de l'emplacement spécifié.
- vecteur ::clear() : Il supprime tous les éléments vectoriels.
Exemple 1
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; for (int a = 1; a <= 5; a++) nums.push_back(a); cout << "Output from begin and end: "; for (auto a = nums.begin(); a != nums.end(); ++a) cout << *a << " "; cout << "\nOutput from cbegin and cend: "; for (auto a = nums.cbegin(); a != nums.cend(); ++a) cout << *a << " "; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Inclure le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
- Inclure le fichier d'en-tête vectoriel dans notre code. Cela nous permettra de travailler avec des vecteurs en C++.
- Incluez l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
- Appelez la fonction main() à l'intérieur de laquelle la logique du programme doit être ajoutée.
- Le { marque le début du corps de la fonction main().
- Déclarez un vecteur nommé nums pour stocker un ensemble d'entiers.
- Créez une boucle for pour nous aider à parcourir le vecteur. La variable nous aidera à itérer sur les éléments vectoriels, à partir du 1 er au 5 ème éléments.
- Poussez les éléments dans le vecteur num par l'arrière. Pour chaque itération, cela ajoutera la valeur actuelle de la variable a dans le vecteur, qui est de 1 à 5.
- Imprimer du texte sur la console
- Utilisez une variable d'itérateur a pour itérer sur les éléments de vecteur nums du début à l'élément après la fin. Notez que nous utilisons les itérateurs vector::begin() et vector::end().
- Afficher les valeurs pointées par la variable d'itérateur an sur la console pour chaque itération.
- Imprimez du texte sur la console. Le \n est un caractère de nouvelle ligne, déplaçant le curseur vers la nouvelle ligne pour imprimer à partir de là.
- Utilisez une variable d'itérateur pour itérer sur les éléments des numéros de vecteur du début à l'élément après la fin. Notez que nous utilisons les itérateurs vector::cbegin() et vector::cend().
- Afficher les valeurs pointées par la variable d'itérateur a sur la console pour chaque itération.
- La fonction main doit renvoyer une valeur si le programme s'exécute correctement.
- Fin du corps de la fonction main().
Exemple 2
#include <iostream> #include <vector> using namespace std; int main() { vector<int> nums; nums.assign(5, 1); cout << "Vector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.push_back(2); int n = nums.size(); cout << "\nLast element: " << nums[n - 1]; nums.pop_back(); cout << "\nVector contents: "; for (int a = 0; a < nums.size(); a++) cout << nums[a] << " "; nums.insert(nums.begin(), 7); cout << "\nFirst element: " << nums[0]; nums.clear(); cout << "\nSize after clear(): " << nums.size(); }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Incluez le fichier d'en-tête iostream dans notre code pour utiliser ses fonctions.
- Incluez le fichier d'en-tête vectoriel dans notre code pour utiliser ses fonctions.
- Incluez l'espace de noms std pour utiliser ses classes sans l'appeler.
- Appelez la fonction main(). La logique du programme doit être ajoutée dans son corps.
- Le début du corps de la fonction main().
- Déclarez un vecteur nommé nums pour stocker des valeurs entières.
- Mémoriser 5 éléments dans le vecteur nums. Chacun avec une valeur de 1.
- Imprimer du texte sur la console
- Utilisez une variable d'itérateur a pour itérer sur les éléments du vecteur nums.
- Imprimez les valeurs des numéros de vecteur sur la console pour chaque itération.
- Ajoutez la valeur 2 à la fin des numéros de vecteur.
- Déclarez une variable entière n pour stocker la taille du vecteur nums.
- Imprime la dernière valeur des numéros de vecteur à côté d'un autre texte. Il devrait renvoyer un 2.
- Supprimez le dernier élément du vecteur nums. Le 2 sera supprimé.
- Imprimez du texte sur la console. Le \n déplace le curseur vers la nouvelle ligne pour y imprimer le texte.
- Utilisez une variable d'itérateur a pour itérer sur les éléments du vecteur nums.
- Imprimez les valeurs des numéros de vecteur sur la console pour chaque itération.
- Insérez la valeur 7 au début des numéros de vecteur.
- Imprime la première valeur des numéros de vecteur à côté d'un autre texte. Il devrait retourner 7.
- Supprimez tous les éléments des numéros de vecteur.
- Imprimez la taille du vecteur numérique à côté d'un autre texte après avoir effacé tout le contenu. Il devrait renvoyer 0.
- Fin du corps de la fonction main().
Capacité
Utilisez les fonctions suivantes pour déterminer la capacité d'un vecteur :
- Taille() – Il renvoie le nombre d'éléments dans un vecteur.
- Max_size() -Il renvoie le plus grand nombre d'éléments qu'un vecteur peut stocker.
- Capacité () –It renvoie la quantité d'espace de stockage allouée à un vecteur.
- Redimensionner () –It redimensionne le conteneur pour contenir n éléments. Si la taille actuelle du vecteur est supérieure à n, les éléments arrière seront supprimés du vecteur. Si la taille actuelle du vecteur est inférieure à n, des éléments supplémentaires seront ajoutés à l'arrière du vecteur.
- Vide () –i t renvoie true si un vecteur est vide. Sinon, elle renvoie false.
Exemple 3
#include <iostream> #include <vector> using namespace std; int main() { vector<int> vector1; for (int x = 1; x <= 10; x++) vector1.push_back(x); cout << "Vector size: " << vector1.size()<< endl; cout << "Vector capacity: " << vector1.capacity() << endl; cout << "Maximum size of vector: " << vector1.max_size()<< endl; vector1.resize(5); cout << "Vector size after resizing: " << vector1.size() << endl; if (vector1.empty() == false) cout << "Vector is not empty"<<endl; else cout << "Vector is empty"<<endl; return 0; }
Sortie :
Voici une capture d'écran du code :
Explication du code :
- Incluez le fichier d'en-tête iostream dans notre code pour utiliser sa fonction.
- Incluez le fichier d'en-tête vectoriel dans notre code pour utiliser ses fonctions.
- Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
- Appelez la fonction main(). La logique du programme doit être ajoutée dans le corps de cette fonction.
- Créez un vecteur nommé vector1 pour stocker des nombres entiers.
- Utilisez une boucle for pour créer la variable x avec des valeurs comprises entre 1 et 10.
- Poussez les valeurs de la variable x dans le vecteur.
- Imprimez la taille du vecteur à côté d'autres textes sur la console.
- Imprimez la capacité du vecteur à côté d'autres textes sur la console.
- Imprimez le nombre maximum d'éléments que le vecteur peut contenir à côté d'autres textes sur la console.
- Redimensionnez le vecteur pour qu'il ne contienne que 5 éléments.
- Imprimez la nouvelle taille du vecteur à côté d'un autre texte.
- Vérifiez si le vecteur n'est pas vide.
- Imprimer du texte sur la console si le vecteur n'est pas vide.
- Utilisez une instruction else pour indiquer ce qu'il faut faire si le vecteur est vide.
- Texte à imprimer sur la console si le vecteur est vide.
- Le programme doit renvoyer une valeur en cas de réussite.
- Fin du corps de la fonction main().
Résumé :
- Un vecteur C++ est un tableau dynamique capable de se redimensionner automatiquement lorsqu'un élément y est ajouté ou supprimé.
- Le stockage d'un vecteur est géré automatiquement par le conteneur.
- Les éléments d'un vecteur sont stockés dans un stockage contigu pour être accédés puis parcourus à l'aide d'itérateurs.
- L'insertion de nouvelles données dans un vecteur se fait à sa fin.
- L'insertion de données dans un vecteur prend un temps différentiel.
- La suppression d'un élément d'un vecteur prend un temps constant.
- L'insertion ou la suppression d'un élément au début prend un temps linéaire.
- Les vecteurs doivent être utilisés lorsqu'il s'agit d'éléments de données qui changent constamment.
- Vous pouvez également utiliser des vecteurs si la taille des données n'est pas connue avant de commencer.
Langue C
- C Fonctions de la bibliothèque standard
- Opérateurs en C++ avec exemple :qu'est-ce que c'est, les types et les programmes
- Boucle do…while C++ avec exemples
- Instruction C++ Switch Case avec EXAMPLE
- Allocation dynamique C++ de tableaux avec exemple
- Pointeurs C++ avec exemples
- Surcharge d'opérateur C++ avec des exemples
- std ::list en C++ avec exemple
- Fonctions C++ avec exemples de programmes