Vecteur dans C++ Bibliothèque de modèles standard (STL) avec exemple

Qu'est-ce qu'une C++ Vecteur?

A C++ vecteur 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 un stockage contigu. Cela permet C++ les programmeurs peuvent accéder aux éléments vectoriels et les parcourir à 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 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.

Quand utiliser un vecteur ?

A C++ Le vecteur doit être utilisé dans les circonstances suivantes :

  • Lorsque vous traitez des éléments de données qui changent constamment.
  • 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 dans C++

La syntaxe des vecteurs dans C++ est:

vector <data-type> name (items)
  • Comme indiqué ci-dessus, nous commençons par le mot-clé vector.
  • 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 C++ vecteurs :

  • vecteur :: commencer() : 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 possibilité de modifier des é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 modifier la signification du type de données spécifié. Voici les modificateurs courants dans C++:

  • vecteur::push_back() : Ce modificateur repousse les éléments par l'arrière.
  • vecteur::insertion() : 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 série 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 :

Modificateurs

Voici une capture d'écran du code :

Modificateurs

Explication du code :

  1. Incluez le fichier d'en-tête iostream dans notre code. Cela nous permettra de lire et d'écrire sur la console.
  2. Incluez le fichier d'en-tête vectoriel dans notre code. Cela nous permettra de travailler avec des vecteurs dans C++.
  3. Incluez l'espace de noms std afin d'utiliser ses classes et fonctions sans l'appeler.
  4. Appelez la fonction main() dans laquelle la logique du programme doit être ajoutée.
  5. Le { marque le début du corps de la fonction main().
  6. Déclarez un vecteur nommé nums pour stocker un ensemble d'entiers.
  7. Créez une boucle for pour nous aider à parcourir le vecteur. La variable nous aidera à parcourir les éléments vectoriels, de 1st - 5th éléments.
  8. Poussez les éléments dans le numéro vectoriel depuis l'arrière. Pour chaque itération, cela ajoutera la valeur actuelle de la variable a dans le vecteur, qui est de 1 à 5.
  9. Imprimer du texte sur la console
  10. Utilisez une variable itératrice a pour parcourir les éléments des nombres vectoriels du début à l'élément après la fin. Notez que nous utilisons les itérateurs vector::begin() et vector::end().
  11. Imprimez les valeurs pointées par la variable itérateur an sur la console pour chaque itération.
  12. 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à.
  13. Utilisez une variable itératrice pour parcourir les éléments des nombres vectoriels du début à l'élément après la fin. Notez que nous utilisons les itérateurs vector::cbegin() et vector::cend().
  14. Imprimez les valeurs pointées par la variable itérateur a sur la console pour chaque itération.
  15. La fonction principale doit renvoyer une valeur si le programme s'exécute correctement.
  16. 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 :

Modificateurs

Voici une capture d'écran du code :

Modificateurs

Explication du code :

  1. Incluez le fichier d'en-tête iostream dans notre code pour utiliser ses fonctions.
  2. Incluez le fichier d'en-tête vectoriel dans notre code pour utiliser son fonctions.
  3. Incluez l'espace de noms std pour utiliser ses classes sans l'appeler.
  4. Appelez la fonction main(). La logique du programme doit être ajoutée à l'intérieur de son corps.
  5. Le début du corps de la fonction main().
  6. Déclarez un vecteur nommé nums pour stocker des valeurs entières.
  7. Stockez 5 éléments dans les nombres vectoriels. Chacun avec une valeur de 1.
  8. Imprimer du texte sur la console
  9. Utilisez une variable itératrice a pour parcourir les éléments des nombres vectoriels.
  10. Imprimez les valeurs des nombres vectoriels sur la console pour chaque itération.
  11. Ajoutez la valeur 2 à la fin des nombres vectoriels.
  12. Déclarez une variable entière n pour stocker la taille des nombres vectoriels.
  13. Imprimez la dernière valeur des nombres vectoriels à côté d'un autre texte. Il devrait renvoyer un 2.
  14. Supprimez le dernier élément des nombres vectoriels. Les 2 seront supprimés.
  15. Imprime le texte sur la console. Le \n déplace le curseur vers la nouvelle ligne pour y imprimer le texte.
  16. Utilisez une variable itératrice a pour parcourir les éléments des nombres vectoriels.
  17. Imprimez les valeurs des nombres vectoriels sur la console pour chaque itération.
  18. Insérez la valeur 7 au début des numéros de vecteur.
  19. Imprimez la première valeur des nombres vectoriels à côté d'un autre texte. Il devrait renvoyer 7.
  20. Supprimez tous les éléments des numéros de vecteur.
  21. Imprimez la taille du numéro vectoriel avec un autre texte après avoir effacé tout le contenu. Il devrait renvoyer 0.
  22. Fin du corps de la fonction main().

Capacités

Utilisez les fonctions suivantes pour déterminer la capacité d'un vecteur :

  • Taille() -Il renvoie le nombre d'éléments dans un vecteur.
  • Taille max() -Il renvoie le plus grand nombre d'éléments qu'un vecteur peut stocker.
  • Capacité () –Il renvoie la quantité d'espace de stockage allouée à un vecteur.
  • Redimensionner () –Il redimensionne le conteneur pour contenir n éléments. Si la taille actuelle du vecteur est supérieure à n, les éléments antérieurs 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 () –it renvoie vrai si un vecteur est vide. Sinon, cela renvoie faux.

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 :

Capacités

Voici une capture d'écran du code :

Capacités

Explication du code :

  1. Incluez le fichier d'en-tête iostream dans notre code pour utiliser sa fonction.
  2. Incluez le fichier d'en-tête vectoriel dans notre code pour utiliser ses fonctions.
  3. Incluez l'espace de noms std dans notre code pour utiliser ses classes sans l'appeler.
  4. Appelez la fonction main(). La logique du programme doit être ajoutée dans le corps de cette fonction.
  5. Créez un vecteur nommé vector1 pour stocker des entiers.
  6. Utilisez une boucle for pour créer une variable x avec des valeurs de 1 à 10.
  7. Poussez les valeurs de la variable x dans le vecteur.
  8. Imprimez la taille du vecteur à côté d'un autre texte sur la console.
  9. Imprimez la capacité du vecteur avec d'autres textes sur la console.
  10. Imprimez le nombre maximum d'éléments que le vecteur peut contenir avec d'autres textes sur la console.
  11. Redimensionnez le vecteur pour qu'il ne contienne que 5 éléments.
  12. Imprimez la nouvelle taille du vecteur avec un autre texte.
  13. Vérifiez si le vecteur n'est pas vide.
  14. Imprime le texte sur la console si le vecteur n'est pas vide.
  15. Utilisez une instruction else pour indiquer quoi faire si le vecteur est vide.
  16. Texte à imprimer sur la console si le vecteur est vide.
  17. Le programme doit renvoyer de la valeur une fois terminé.
  18. Fin du corps de la fonction main().

Résumé

  • A C++ vector 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 afin d'être accessibles 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 de manière constante.
  • Vous pouvez également utiliser des vecteurs si la taille des données n'est pas connue avant de commencer.