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

Table des matières:

Anonim

Qu'est-ce qu'un vecteur C ++?

Un VECTOR 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 un stockage 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 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 de manière cohérente.
  • 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  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 les vecteurs C ++:

  • vector :: begin (): il donne un itérateur qui pointe vers le premier élément du vecteur.
  • vector :: end (): il donne un itérateur qui pointe vers l'élément au-delà de la fin du vecteur.
  • vector :: cbegin (): c'est la même chose que vector :: begin (), mais il n'a pas la possibilité de modifier les éléments.
  • vector :: 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 ++:

  • vector :: push_back (): Ce modificateur pousse les éléments de l'arrière.
  • vector :: insert (): Pour insérer de nouveaux éléments dans un vecteur à un emplacement spécifié.
  • vector :: pop_back (): Ce modificateur supprime les éléments vectoriels de l'arrière.
  • vector :: erase (): Il est utilisé pour supprimer une plage d'éléments de l'emplacement spécifié.
  • vector :: clear (): Il supprime tous les éléments vectoriels.

Exemple 1

#include #include using namespace std;int main(){vector 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;}

Production:

Voici une capture d'écran du code:

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 en C ++.
  3. Incluez l'espace de noms std afin d'utiliser ses classes et ses fonctions sans l'appeler.
  4. Appelez la fonction main () à l'intérieur de 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, du 1 er au 5 e élément.
  8. 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.
  9. Imprimer du texte sur la console
  10. Utilisez une variable d'itération a pour parcourir les éléments du vecteur nums du début à l'élément au-delà de la fin. Notez que nous utilisons les itérateurs vector :: begin () et vector :: end ().
  11. Imprimez les valeurs pointées par la variable d'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 d'itérateur pour parcourir les éléments du vecteur nums du début à l'élément au-delà de la fin. Notez que nous utilisons les itérateurs vector :: cbegin () et vector :: cend ().
  14. Imprimez les valeurs pointées par la variable d'itérateur a sur la console pour chaque itération.
  15. La fonction principale doit renvoyer une valeur si le programme s'exécute avec succès.
  16. Fin du corps de la fonction main ().

Exemple 2

#include #include using namespace std;int main(){vector 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();}

Production:

Voici une capture d'écran du code:

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 ses 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 le vecteur nums. Chacun avec une valeur de 1.
  8. Imprimer du texte sur la console
  9. Utilisez une variable d'itérateur a pour parcourir les éléments du vecteur nums.
  10. Imprimez les valeurs des nombres de vecteurs sur la console pour chaque itération.
  11. Ajoutez la valeur 2 à la fin du vecteur nums.
  12. Déclarez une variable entière n pour stocker la taille du vecteur nums.
  13. Imprimez la dernière valeur des nombres vectoriels à côté du texte. Il devrait renvoyer un 2.
  14. Supprimez le dernier élément du vecteur nums. Le 2 sera supprimé.
  15. Imprimez du texte sur la console. Le \ n déplace le curseur sur la nouvelle ligne pour y imprimer le texte.
  16. Utilisez une variable d'itérateur a pour parcourir les éléments du vecteur nums.
  17. Imprimez les valeurs des nombres de vecteurs sur la console pour chaque itération.
  18. Insérez la valeur 7 au début du vecteur nums.
  19. Imprimez la première valeur du vecteur nums à côté d'un autre texte. Il devrait renvoyer 7.
  20. Supprimez tous les éléments du vecteur nums.
  21. Imprimez la taille du vecteur num à côté du texte après avoir effacé tout le contenu. Il doit renvoyer 0.
  22. Fin du corps de la fonction main ().

Capacité

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

  • Size () - 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.
  • Capacity () -Il renvoie la quantité d'espace de stockage allouée à un vecteur.
  • Resize () -Il 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.
  • Empty () -i t renvoie vrai si un vecteur est vide, sinon, il retourne faux.

Exemple 3

#include #include using namespace std;int main() {vector 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"<

Production:

Voici une capture d'écran du code:

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 la 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é du texte sur la console.
  9. Imprimez la capacité du vecteur à côté d'un autre texte 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 ne contenir que 5 éléments.
  12. Imprimez la nouvelle taille du vecteur à côté du texte.
  13. Vérifiez si le vecteur n'est pas vide.
  14. Imprimez du texte sur la console si le vecteur n'est pas vide.
  15. Utilisez une instruction else pour indiquer ce qu'il faut faire si le vecteur est vide.
  16. Texte à imprimer sur la console si le vecteur est vide.
  17. Le programme doit renvoyer une valeur une fois terminé.
  18. 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 une mémoire contiguë afin d'ê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 pour traiter des éléments de données qui changent de manière cohérente.
  • Vous pouvez également utiliser des vecteurs si la taille des données n'est pas connue avant de commencer.