30 exemples de vecteurs C++

30 Exemples De Vecteurs C



En C++, Vector est une structure de données unidimensionnelle qui s'augmente dynamiquement en fonction des besoins. L'organisation des données (insertion/modification/suppression) peut être effectuée efficacement dans cette structure de données. Ses applications sont les suivantes :

  1. Représenter les vecteurs mathématiques dans les applications scientifiques et techniques
  2. Des files d'attente, des piles peuvent être implémentées en utilisant cette structure de données, etc.

La plupart des opérations et fonctions CRUD courantes liées à cette structure de données sont discutées en détail par scénario avec des extraits de syntaxe et de code.







Sujet du contenu :

  1. Insérer un élément dans un vecteur
  2. Insérer plusieurs éléments dans un vecteur
  3. Accéder aux éléments à partir d'un vecteur
  4. Mettre à jour l'élément dans un vecteur
  5. Supprimer un élément spécifique d'un vecteur
  6. Supprimer tous les éléments d'un vecteur
  7. Union des vecteurs
  8. Intersection de vecteurs
  9. Vérifiez si le vecteur est vide ou non
  10. Parcourir un vecteur à l'aide de Const_Iterator
  11. Parcourir un vecteur à l'aide de Reverse_Iterator
  12. Poussez les éléments dans le vecteur
  13. Pop les éléments du vecteur
  14. Échangez les vecteurs
  15. Récupérer le premier élément du vecteur
  16. Récupérer le dernier élément du vecteur
  17. Attribuer de nouvelles valeurs à un vecteur
  18. Étendre le vecteur en utilisant Emplace()
  19. Étendre le vecteur en utilisant Emplace_Back()
  20. Élément maximum d'un vecteur
  21. Élément minimum d'un vecteur
  22. Somme des éléments dans un vecteur
  23. Multiplication élément par élément de deux vecteurs
  24. Produit scalaire de deux vecteurs
  25. Convertir un ensemble en vecteur
  26. Supprimer les éléments en double
  27. Convertir un vecteur en un ensemble
  28. Supprimez les chaînes vides
  29. Écrire un vecteur dans un fichier texte
  30. Créer un vecteur à partir d'un fichier texte

Insérer un élément dans un vecteur

Le std :: vecteur :: insert () La fonction en C++ STL est utilisée pour insérer les éléments à la position spécifiée.



Syntaxe:

vecteur. insérer ( position, élément ) ;

Utilisons cette fonction et passons la première position comme paramètre qui spécifie la position où l'élément doit être inséré et fournissons l'élément comme deuxième paramètre.



La fonction start() peut être utilisée ici pour renvoyer un itérateur qui pointe vers le premier élément du vecteur d'entrée. En ajoutant la position à cette fonction, l'élément est inséré à cette position.





Créons le vecteur « student_names » de type string et insérons deux chaînes aux première et deuxième positions, l'une après l'autre, à l'aide de la fonction insert().

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - student_names

vecteur < chaîne > noms_étudiants ;

cout << 'Vecteur existant : \n ' ;

pour ( auto je : noms_étudiants ) cout << je << fin ;

// Insérer 'Sravan Kumar' en première position

noms_étudiants. insérer ( noms_étudiants. commencer ( ) + 0 , « Shravan Kumar » ) ;

// Insérer 'Sravan Kumar' en deuxième position

noms_étudiants. insérer ( noms_étudiants. commencer ( ) + 1 , 'Lalitha' ) ;

cout << 'Vecteur final : \n ' ;

pour ( auto j : noms_étudiants ) cout << j << fin ;

}

Sortir:

Auparavant, le vecteur « student_names » était vide. Après insertion, le vecteur contient deux éléments.



Insérer plusieurs éléments dans un vecteur

Nous utilisons la même fonction qui est std::vector::insert() dans ce scénario. Mais nous devons transmettre les paramètres supplémentaires/différents à la même fonction pour insérer plusieurs éléments dans un vecteur.

Scénario 1 : insertion d'un seul élément plusieurs fois

Dans ce scénario, nous ajoutons le même élément plusieurs fois.

Syntaxe:

vecteur. insérer ( position, taille, élément ) ;

Pour ce faire, nous devons passer la taille comme deuxième paramètre à la fonction insert(). Le nombre total de paramètres transmis à cette fonction est de trois.

Ici:

  1. Le paramètre position spécifie la position de l'élément à insérer. Si la taille est supérieure à 1, l'index de position de départ sera la position.
  2. Le paramètre size spécifie le nombre de fois qu'un élément doit être inséré.
  3. Le paramètre element prend l'élément à insérer dans un vecteur.

Considérons le vecteur « student_names » avec deux chaînes. Insérez les cordes « Lavanya » cinq fois en deuxième position.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - student_names

vecteur < chaîne > noms_étudiants { « Shravan Kumar » , 'Lalitha' } ;

cout << 'Vecteur existant : \n ' ;

pour ( auto je : noms_étudiants ) cout << je << fin ;

// Insérez 5 fois 'Lavanya' en deuxième position

noms_étudiants. insérer ( noms_étudiants. commencer ( ) + 1 , 5 , 'Lavania' ) ;

cout << ' \n Vecteur final : \n ' ;

pour ( auto j : noms_étudiants ) cout << j << fin ;

}

Sortir:

Dans le vecteur existant, « Sravan Kumar » est en première position et « Lalitha » est en deuxième position. Après avoir inséré « Lavanya » cinq fois (de la deuxième position à la sixième position), « Lalitha » est passée à la septième position (dernière).

Scénario 2 : insertion de plusieurs éléments

Dans ce scénario, nous ajoutons les différents éléments à la fois à partir d’un autre vecteur. Nous utilisons également la même fonction ici mais la syntaxe et les paramètres changeront.

Syntaxe:

vecteur. insérer ( position, premier_iterator, second_iterator ) ;

Pour ce faire, nous devons passer la taille comme deuxième paramètre à la fonction insert(). Le nombre total de paramètres transmis à cette fonction est de trois.

Ici:

  1. Le paramètre position spécifie la position de l'élément à insérer.
  2. Le « first_iterator » spécifie la position de départ à partir de laquelle les éléments doivent être insérés (en gros, en utilisant la fonction Begin(), un itérateur est renvoyé qui pointe vers le premier élément présent dans le conteneur).
  3. Le « second_iterator » spécifie la position de fin jusqu'à laquelle les éléments doivent être insérés (en gros, en utilisant la fonction end(), un itérateur est renvoyé qui pointe à côté du dernier point présent dans le conteneur).

Créez deux vecteurs, « marks1 » et « marks2 », de type entier. Insérez tous les éléments présents dans le vecteur «marks2» dans la première position du vecteur «marks1».

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - marks1

vecteur < int > marques1 { 100 , 89 , 90 , 78 , 98 } ;

cout << 'Premier vecteur : \n ' ;

pour ( auto je : marques1 ) cout << je << fin ;

// Initialisation du vecteur - marks2

vecteur < int > marques2 { 56 , Quatre cinq , 65 } ;

cout << 'Deuxième vecteur : \n ' ;

pour ( auto j : marques2 ) cout << j << fin ;

marques1. insérer ( commencer ( marques1 ) , commencer ( marques2 ) , fin ( marques2 ) ) ;



// Vecteur final

cout << 'Vecteur Première-Finale : \n ' ;

pour ( auto X : marques1 )

cout << X << ' ' ;

}

Sortir:

Le premier vecteur (marks1) contient cinq éléments et le deuxième vecteur (marks2) contient trois éléments. Nous avons passé les paramètres start (marks1), start (marks2), end (marks2) à la fonction « insert » de telle sorte que tous les éléments présents dans le deuxième vecteur soient itérés et insérés dans le premier vecteur au début. Ainsi, le premier vecteur contient huit éléments.

Accéder aux éléments à partir d'un vecteur

1. Utilisation de l'opérateur []

Dans certains scénarios, vous devrez peut-être renvoyer uniquement les éléments spécifiques du vecteur. Il n'est pas nécessaire de renvoyer tous les éléments. Ainsi, pour renvoyer uniquement les éléments spécifiques basés sur l'index, l'opérateur d'index et les fonctions at() sont utilisés.

Syntaxe:

vecteur [ index_position ]

En C++, l'indexation commence à 0 pour toute structure de données. Si l'élément n'existe pas, il renvoie vide (aucune erreur ou avertissement n'est généré).

Considérons le vecteur « produits » avec cinq éléments. Accédez à tous les éléments un par un en utilisant la position index.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

//Accès aux éléments des produits

cout << « Premier élément : » << des produits [ 0 ] << fin ;

cout << « Deuxième élément : » << des produits [ 1 ] << fin ;

cout << « Troisième élément : » << des produits [ 2 ] << fin ;

cout << « Quatrième élément : » << des produits [ 3 ] << fin ;

cout << « Cinquième élément : » << des produits [ 4 ] << fin ;



// Essayez d'accéder au 9ème élément

cout << « Neuvième élément : » << des produits [ 8 ] << fin ;

}

Sortir:

Il n’y a aucun élément présent à l’index 8. Donc, vide est renvoyé.

2. Utilisation de la fonction At()

At() est une fonction membre similaire au cas d'utilisation précédent mais elle renvoie l'exception « std::out_of_range » lorsque l'index hors plage lui est fourni.

Syntaxe:

vecteur. à ( index_position )

Nous devons transmettre la position de l'index à cette fonction.

Considérons le vecteur « produits » avec cinq éléments. Accédez à tous les éléments un par un en utilisant la position d'index et essayez d'accéder à l'élément présent en 9ème position.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

//Accès aux éléments des produits

cout << « Premier élément : » << des produits. à ( 0 ) << fin ;

cout << « Deuxième élément : » << des produits. à ( 1 ) << fin ;

cout << « Troisième élément : » << des produits. à ( 2 ) << fin ;

cout << « Quatrième élément : » << des produits. à ( 3 ) << fin ;

cout << « Cinquième élément : » << des produits. à ( 4 ) << fin ;



//Accès aux éléments qui ne sont pas dans le vecteur

cout << « Neuvième élément : » << des produits. à ( 8 ) << fin ;

}

Sortir:

Une erreur se produit lors de l'accès au 9ème élément :

terminate appelé après avoir lancé une instance de 'std :: out_of_range'

quoi ( ) : vecteur :: _M_range_check : __n ( lequel est 8 ) >= ce - > taille ( ) ( lequel est 5 )

Mettre à jour un élément dans un vecteur

1. Utilisation de l'opérateur []

En utilisant la position de l'index, nous pouvons mettre à jour l'élément dans le vecteur. L'opérateur [] prend la position d'index de l'élément qui doit être mis à jour. Le nouvel élément sera affecté à cet opérateur.

Syntaxe:

Vecteur [ index_position ] = Élément

Considérons le vecteur « student_marks » avec cinq valeurs. Mettre à jour les éléments présents aux indices 1 et 3.

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - student_marks

vecteur < int > notes_étudiantes { 98 , 78 , 90 , 67 , 89 } ;

cout << « Marques existantes : » << fin ;

pour ( int c'est : notes_étudiantes )

cout << c'est << fin ;

// Mettre à jour l'élément à l'index-3 avec 100

notes_étudiantes [ 3 ] = 100 ;

// Mettre à jour l'élément à l'index-1 avec 60

notes_étudiantes [ 1 ] = 60 ;

cout << « Notes finales : » << fin ;

pour ( int c'est : notes_étudiantes )

cout << c'est << fin ;

}

Sortir:

Nous pouvons voir que le vecteur final contient les éléments de mise à jour aux indices 1 et 3.

2. Utilisation de la fonction At()

Semblable à l'opérateur d'index, at() est essentiellement une fonction membre qui met à jour la valeur en fonction de l'index dans un itérateur. Si l'index spécifié dans cette fonction n'existe pas, l'exception « std::out_of_range » est levée.

vecteur. à ( index_position ) = Élément

Considérons le vecteur « produits » avec cinq éléments. Mettez à jour tous les éléments présents dans le vecteur avec d'autres éléments.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

cout << 'Produits existants: ' << fin ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

//Mise à jour de toutes les chaînes

des produits. à ( 0 ) = 'Gâteau' ;

des produits. à ( 1 ) = 'Chocolat' ;

des produits. à ( 2 ) = 'Fruits' ;

des produits. à ( 3 ) = 'Oignons' ;

des produits. à ( 4 ) = 'Boissons non alcoolisées' ;



cout << ' \n Produits finaux : ' << fin ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

}

Sortir:

Supprimer un élément spécifique d'un vecteur

En C++, le std :: vecteur :: effacer () La fonction est utilisée pour supprimer un élément/une plage d’éléments spécifique d’un vecteur. Les éléments sont supprimés en fonction des positions de l'itérateur.

Syntaxe:

vecteur. effacer ( position de l'itérateur )

Voyons la syntaxe pour supprimer l'élément spécifique d'un vecteur. Nous pouvons utiliser les fonctions start() ou end() pour obtenir la position de l'élément présent dans le vecteur à supprimer.

Considérons le vecteur « produits » avec cinq éléments.

  1. Supprimez le troisième élément en spécifiant l’itérateur start(). Begin() pointe vers le premier élément du vecteur. Si on en ajoute deux à cette fonction, elle pointe vers le troisième élément.
  2. Supprimez le dernier élément en spécifiant l’itérateur end(). End() pointe vers le dernier élément du vecteur.
#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

cout << 'Produits existants: ' << fin ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;



// Supprime le 3ème élément

des produits. effacer ( des produits. commencer ( ) + 2 ) ;

cout << ' \n Après avoir supprimé le 3ème élément : \n ' ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

// Supprime le dernier élément

des produits. effacer ( des produits. fin ( ) ) ;

cout << ' \n Après avoir supprimé le dernier élément : \n ' ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

}

Sortir:

Or, il n’y a que trois éléments (« savon », « shampoing », « fruits ») qui existent dans le vecteur « produits ».

Supprimer tous les éléments d'un vecteur

Scénario 1 : supprimer une plage d'éléments d'un vecteur

Utilisons la fonction std::vector::erase() pour supprimer plusieurs éléments d'une plage.

Syntaxe:

vecteur. effacer ( itérateur en premier, itérateur en dernier )

Les deux itérateurs (begin() pointe vers le premier élément et end() pointe vers les fonctions du dernier élément) sont utilisés pour spécifier la plage.

Considérons le vecteur « produits » avec cinq éléments et supprimez tous les éléments de la deuxième position. Pour y parvenir, le premier itérateur est start (products)+1 qui pointe vers le deuxième élément et le deuxième itérateur est end (products).

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

cout << 'Produits existants: ' << fin ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;



// Supprime tous les éléments de la deuxième position

des produits. effacer ( commencer ( des produits ) + 1 ,fin ( des produits ) ) ;

cout << ' \n Produits finaux : \n ' ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

}

Sortir:

Désormais, il n’y a qu’un seul élément (« savon ») présent dans le vecteur « produits ».

Scénario 2 : Supprimer tous les éléments du vecteur

Utilisons le std :: vecteur :: clear () fonction pour supprimer tous les éléments du vecteur.

Syntaxe:

vecteur. clair ( )

Aucun paramètre n'est transmis à cette fonction.

Considérez le même vecteur que celui utilisé dans le premier scénario et supprimez tous les éléments à l'aide de la fonction clear().

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits avec 5 chaînes

vecteur < chaîne > des produits { 'savon' , 'shampooing' , 'huile' , 'fruits' , 'légumes' } ;

cout << 'Produits existants: ' << fin ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;



// Supprime tous les éléments des produits

des produits. clair ( ) ;

cout << ' \n Produits finaux : \n ' ;

pour ( chaîne itr : des produits )

cout << c'est << fin ;

}

Sortir:

On voit qu’il n’y a aucun élément dans le vecteur « produits ».

Union des vecteurs

Il est possible d'effectuer l'opération UNION sur des vecteurs en utilisant la fonction std::set_union(). Union renvoie les éléments uniques des vecteurs en ignorant les éléments en double. Nous devons passer les deux itérateurs à cette fonction. Parallèlement à cela, un itérateur de sortie doit être transmis pour stocker le résultat renvoyé par les deux itérateurs.

Syntaxe:

set_union ( InputIterator1 premier1, InputIterator1 dernier1, InputIterator2 premier2, InputIterator2 dernier2, OutputIterator res ) ;

Ici:

  1. Le « first1 » pointe vers le premier élément du premier itérateur (vecteur).
  2. Le « last1 » pointe vers le dernier élément du premier itérateur (vecteur).
  3. Le « first2 » pointe vers le premier élément du deuxième itérateur (vecteur).
  4. Le « last2 » pointe vers le dernier élément du deuxième itérateur (vecteur).

Créez deux vecteurs – « sujets1 » et « sujets2 » – de type entier.

  1. Triez les deux vecteurs à l'aide de la fonction sort() en passant les itérateurs.
  2. Créez un vecteur de sortie (itérateur).
  3. Trouvez l'union de ces deux vecteurs à l'aide de la fonction std::set_union(). Utilisez start() comme premier itérateur et end() comme dernier itérateur.
  4. Itérez le vecteur de sortie pour afficher les éléments renvoyés par la fonction.
#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - marques1

vecteur < int > marques1 = { 100 , 90 , 80 , 70 , 60 } ;



// Créer un vecteur - marks2

vecteur < int > marques2 = { 80 , 90 , 60 , 70 , 100 } ;

// Trie les deux vecteurs

trier ( marques1. commencer ( ) , marques1. fin ( ) ) ;

trier ( marques2. commencer ( ) , marques2. fin ( ) ) ;

vecteur < int > vecteur de sortie ( marques1. taille ( ) + marques2. taille ( ) ) ;

vecteur < int > :: itérateur est ;

je = set_union ( marques1. commencer ( ) , marques1. fin ( ) ,

marques2. commencer ( ) ,marques2. fin ( ) ,

vecteur de sortie. commencer ( ) ) ;

cout << ' \n marques1 U marques2 : \n ' ;

pour ( s = vecteur de sortie. commencer ( ) ; s ! = je ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Sortir:

Il n'y a que cinq éléments uniques dans les deux vecteurs (sujets1 et sujets2).

Intersection de vecteurs

Trouver l'intersection de deux vecteurs peut être possible à l'aide de la fonction std::set_intersection(). Intersection renvoie les éléments présents dans les deux vecteurs.

Syntaxe:

set_intersection ( InputIterator1 premier1, InputIterator1 dernier1, InputIterator2 premier2, InputIterator2 dernier2, OutputIterator res ) ;

Les paramètres transmis à la fonction set_union() peuvent également être transmis à cette fonction set_intersection().

Créez deux vecteurs – « sujets1 » et « sujets2 » – de type entier.

  1. Triez les deux vecteurs à l'aide de la fonction sort() en passant les itérateurs.
  2. Créez un vecteur de sortie (itérateur).
  3. Trouvez l'intersection de ces deux vecteurs à l'aide de la fonction std::set_intersection(). Utilisez start() comme premier itérateur et end() comme dernier itérateur.
  4. Itérez le vecteur de sortie pour afficher les éléments renvoyés par la fonction.
#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - marques1

vecteur < int > marques1 = { 100 , dix , 80 , 40 , 60 } ;



// Créer un vecteur - marks2

vecteur < int > marques2 = { cinquante , 90 , 60 , dix , 100 } ;

// Trie les deux vecteurs

trier ( marques1. commencer ( ) , marques1. fin ( ) ) ;

trier ( marques2. commencer ( ) , marques2. fin ( ) ) ;

vecteur < int > vecteur de sortie ( marques1. taille ( ) + marques2. taille ( ) ) ;

vecteur < int > :: itérateur est ;

je = set_intersection ( marques1. commencer ( ) , marques1. fin ( ) ,

marques2. commencer ( ) ,marques2. fin ( ) ,

vecteur de sortie. commencer ( ) ) ;

cout << ' \n marques1 ∩ marques2 : \n ' ;

pour ( s = vecteur de sortie. commencer ( ) ; s ! = je ; ++ s )

cout << * s << ' ' << ' \n ' ;

}

Sortir:

Il n'y a que trois éléments présents dans les deux vecteurs (sujets1 et sujets2).

Vérifiez si le vecteur est vide ou non

Avant de travailler sur des vecteurs, il est important de vérifier si le vecteur est vide ou non. C'est également une bonne pratique dans les projets logiciels de vérifier si le vecteur est vide ou non avant d'effectuer des opérations comme les opérations CRUD, etc.

1. Utilisation de Std::vector::empty()

Cette fonction renvoie 1 si le vecteur est vide (ne contient aucun élément). Sinon, 0 est renvoyé. Aucun paramètre n'est passé à cette fonction.

2. Utiliser le Std :: vecteur :: taille ()

La fonction std::vector::size() renvoie l'entier qui représente le nombre total d'éléments présents dans le vecteur.

Créez deux vecteurs – « college1 » et « college2 ». « College1 » contient cinq éléments et « college2 » est vide. Appliquez les deux fonctions sur les deux vecteurs et vérifiez le résultat.

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - college1

vecteur < chaîne > collège1 = { 'collège-A' , 'collège-B' , 'collège-C' , 'collège-D' , 'collège-E' } ;

// Créer un vecteur - college2

vecteur < chaîne > collège2 ;

// vide()

cout << collège1. vide ( ) << fin ;

cout << collège2. vide ( ) << fin ;

// taille()

cout << collège1. taille ( ) << fin ;

cout << collège2. taille ( ) << fin ;

}

Sortir:

La fonction empty() renvoie 0 pour « college1 » et 1 pour « college2 ». La fonction size() renvoie cinq pour « college1 » et 0 pour « college2 ».

Parcourez un vecteur à l'aide de Const_Iterator

Lorsque vous travaillez sur des conteneurs C++ comme des ensembles, des vecteurs, etc., il est possible de parcourir tous les éléments présents dans le conteneur sans les modifier. Le const_iterator est l'un des itérateurs qui réalisent ce scénario. cbegin() (pointe vers le premier élément du vecteur) et cend() (pointe vers le dernier élément du vecteur) sont les deux fonctions fournies par chaque conteneur qui sont utilisées pour renvoyer l'itérateur constant au début et à la fin de le conteneur. En itérant le vecteur, nous pouvons utiliser ces deux fonctions.

  1. Créons un vecteur nommé « départements » avec cinq chaînes.
  2. Déclarez un const_iterator – ctr de type .
  3. Parcourez les départements en utilisant l'itérateur précédent en utilisant la boucle « for » et affichez-le.
#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - départements

vecteur < chaîne > départements = { 'Ventes' , 'Service' ,

'HEURE' , 'IL' , 'Autres' } ;



vecteur < chaîne > :: const_iterator ctr ;

// Parcourez les départements en utilisant const_iterator - ctr.

pour ( ctr = départements. ccommencer ( ) ; ctr ! = départements. quelques ( ) ; ctr ++ ) {

cout << * ctr << fin ;

}

}

Sortir:

Traverser un vecteur à l'aide du Reverse_Iterator

Le inverse_iterator est également un itérateur similaire au const_iterator mais il renvoie les éléments à l'envers. rbegin() (pointe vers le dernier élément du vecteur) et rend() (pointe vers le premier élément du vecteur) sont les deux fonctions fournies par chaque conteneur qui sont utilisées pour renvoyer l'itérateur constant à la fin et au début de le conteneur.

  1. Créons un vecteur nommé « départements » avec cinq chaînes.
  2. Déclarez un reverse_iterator – rtr de type .
  3. Parcourez les départements en utilisant l'itérateur précédent en utilisant la boucle « for » et affichez-le.
#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - départements

vecteur < chaîne > départements = { 'Ventes' , 'Service' ,

'HEURE' , 'IL' , 'Autres' } ;



vecteur < chaîne > :: inverse_iterator rtr ;

// Parcourez les départements en utilisant reverse_iterator - rtr.

pour ( rtr = départements. commencer ( ) ; rtr ! = départements. rend ( ) ; rtr ++ ) {

cout << * rtr << fin ;

}

}

Sortir:

Poussez les éléments dans le vecteur

Pousser ou ajouter des éléments dans un vecteur est une insertion unidirectionnelle qui peut être effectuée à l'aide de l'option vecteur :: push_back () fonction.

Syntaxe:

vecteur. repousser ( élément )

Il faut qu'un élément soit poussé dans le vecteur en tant que paramètre.

Créons un vecteur vide nommé « départements » avec cinq chaînes et poussons deux chaînes l'une après l'autre à l'aide de la fonction push_back().

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - départements

vecteur < chaîne > départements ;

cout << « Départements réels : » << fin ;

pour ( auto c'est = départements. commencer ( ) ; c'est ! = départements. fin ( ) ; ++ c'est )

cout << * c'est << fin ;

// Poussez 'Ventes'

départements. repousser ( 'Ventes' ) ;

// Appuyez sur 'IT'

départements. repousser ( 'IL' ) ;

cout << ' \n Départements finaux : ' << fin ;

pour ( auto c'est = départements. commencer ( ) ; c'est ! = départements. fin ( ) ; ++ c'est )

cout << * c'est << fin ;

}

Sortir:

Tout d’abord, on pousse les « Ventes ». Après cela, « IT » est poussé dans le vecteur. Désormais, le vecteur « départements » contient deux éléments.

Pop les éléments du vecteur

Si vous souhaitez supprimer le dernier élément présent dans le vecteur, en utilisant le vecteur::pop_back() la fonction est la meilleure approche. Il supprime le dernier élément présent dans le vecteur.

Syntaxe:

vecteur. pop_back ( )

Aucun paramètre n'est nécessaire pour cette fonction. Cela montre le comportement indéfini si nous essayons de supprimer le dernier élément d'un vecteur vide.

Créons un vecteur vide nommé « départements » avec cinq chaînes et supprimons le dernier élément en utilisant la fonction précédente. Affichez le vecteur dans les deux cas.

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - départements

vecteur < chaîne > départements = { 'Ventes' , 'IL' , 'Service' , 'Commercialisation' , 'HEURE' } ;

cout << « Départements réels : » << fin ;

pour ( auto c'est = départements. commencer ( ) ; c'est ! = départements. fin ( ) ; ++ c'est )

cout << * c'est << fin ;



// Supprime le dernier élément

départements. pop_back ( ) ;

cout << ' \n Départements finaux : ' << fin ;

pour ( auto c'est = départements. commencer ( ) ; c'est ! = départements. fin ( ) ; ++ c'est )

cout << * c'est << fin ;

}

Sortir:

« RH » est le dernier élément présent dans le vecteur « départements ». Ainsi, il est supprimé du vecteur et le vecteur final contient « Ventes », « Informatique », « Service » et « Marketing ».

Échangez les vecteurs

Le vecteur :: échange () La fonction en C++ STL est utilisée pour échanger tous les éléments présents dans deux vecteurs.

Syntaxe:

premier_vecteur. échanger ( second_vecteur )

Il ne prend pas en compte la taille des vecteurs mais les vecteurs doivent être du même type (une erreur est générée si les types de vecteurs sont différents).

Créons deux vecteurs – « fruits » et « légumes » – de type chaîne de tailles différentes. Échangez chacun d'eux et affichez les vecteurs dans les deux cas.

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Initialisation du vecteur - fruits

vecteur < chaîne > fruits = { 'Pomme' , 'Mangue' } ;

cout << 'Fruits réels :' << fin ;

pour ( auto c'est = fruits. commencer ( ) ; c'est ! = fruits. fin ( ) ; ++ c'est )

cout << * c'est << fin ;



// Initialisation du vecteur - légumes

vecteur < chaîne > légumes = { 'Pomme de terre' , 'Tomate' , 'Brinjal' } ;

cout << ' \n Légumes réels :' << fin ;

pour ( auto c'est = légumes. commencer ( ) ; c'est ! = légumes. fin ( ) ; ++ c'est )

cout << * c'est << fin ;



// Échange les éléments dans les deux vecteurs

    fruits. échanger ( légumes ) ;

cout << ' \n Fruits après échange :' << fin ;

pour ( auto c'est = fruits. commencer ( ) ; c'est ! = fruits. fin ( ) ; ++ c'est )

cout << * c'est << fin ;

cout << ' \n Légumes après échange :' << fin ;

pour ( auto c'est = légumes. commencer ( ) ; c'est ! = légumes. fin ( ) ; ++ c'est )

cout << * c'est << fin ;

}

Sortir:

Auparavant, le vecteur « fruits » contenait deux éléments et le vecteur « légumes » contenait trois éléments. Après échange, le vecteur « fruits » contient trois éléments et le vecteur « légumes » contient deux éléments.

Récupérer le premier élément du vecteur

Dans certains cas, il est nécessaire de renvoyer uniquement le premier élément du vecteur. La fonction vector::front() en C++ STL récupère uniquement le premier élément du vecteur.

Syntaxe:

vecteur. devant ( )

Cette fonction ne prendra aucun paramètre. Si le vecteur est vide, une erreur est générée.

Créons deux vecteurs – « fruits » et « légumes » – de type chaîne et essayons de récupérer le premier élément séparément des deux vecteurs.

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - fruits avec 2 éléments

vecteur < chaîne > fruits = { 'Pomme' , 'Mangue' } ;

// Renvoie le premier élément

cout << fruits. devant ( ) << fin ;



// Initialisation du vecteur - légumes

vecteur < chaîne > légumes ;

// Essaie de renvoyer le premier élément

cout << légumes. devant ( ) ;

}

Sortir:

« Pomme » est le premier élément présent dans le vecteur « fruits ». Donc, il est restitué. Mais une erreur est générée lorsque nous essayons de récupérer le premier élément du vecteur « légumes » car il est vide.

Récupérer le dernier élément du vecteur

La fonction vector::end() en C++ STL récupère uniquement le dernier élément du vecteur.

Syntaxe:

vecteur. dos ( )

Cette fonction ne prendra aucun paramètre. Si le vecteur est vide, une erreur est générée.

Créons deux vecteurs – « fruits » et « légumes » – de type chaîne et essayons de récupérer le dernier élément séparément des deux vecteurs.

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - fruits avec 2 éléments

vecteur < chaîne > fruits = { 'Pomme' , 'Mangue' } ;

// Récupère le dernier élément

cout << fruits. dos ( ) << fin ;



// Initialisation du vecteur - légumes

vecteur < chaîne > légumes ;

// Essaie de récupérer le dernier élément

cout << légumes. dos ( ) ;

}

Sortir:

« Mangue » est le dernier élément présent dans le vecteur « fruits ». Donc, il est restitué. Mais une erreur est générée lorsque nous essayons de récupérer le dernier élément du vecteur « légumes » car il est vide.

Attribuer de nouvelles valeurs à un vecteur

Dans certains scénarios, si vous souhaitez mettre à jour toutes les valeurs avec la nouvelle valeur ou créer un vecteur avec les mêmes valeurs, l'utilisation de la fonction vector::assign() est la meilleure approche. Grâce à cette fonction, nous pouvons :

  1. Créez le vecteur avec tous les éléments similaires
  2. Modifier le vecteur existant avec le même élément

Syntaxe:

vecteur. attribuer ( taille, valeur )

Deux paramètres sont requis pour cette fonction.

Ici:

  1. La taille précise le nombre d'éléments à attribuer.
  2. La valeur spécifie l'élément à attribuer.

Créons un vecteur nommé «marks1» avec cinq valeurs et mettons à jour ce vecteur avec quatre éléments de telle sorte que tous les éléments du vecteur mis à jour soient égaux à 20.

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - marques1

vecteur < int > marques1 = { 100 , 90 , 80 , 70 , 60 } ;

cout << « Vecteur réel : » << fin ;

pour ( int je = 0 ; je < marques1. taille ( ) ; je ++ )

cout << marques1 [ je ] << fin ;



marques1. attribuer ( 4 , vingt ) ;



cout << ' \n Vecteur mis à jour :' << fin ;

pour ( int je = 0 ; je < marques1. taille ( ) ; je ++ )

cout << marques1 [ je ] << fin ;

}

Sortir:

Auparavant, le vecteur contenait cinq éléments différents. Désormais, il ne contient que quatre éléments et tous sont égaux à 20.

Étendre le vecteur en utilisant Emplace()

Nous savons déjà que de nouveaux éléments sont insérés dynamiquement à n’importe quelle position d’un vecteur. C'est possible en utilisant la fonction vector::emplace(). Examinons rapidement la syntaxe et les paramètres acceptés par cette fonction.

Syntaxe:

vecteur. emplace ( position const_iterator, élément )

Deux paramètres obligatoires sont passés à cette fonction.

Ici:

  1. Le premier paramètre prend la position afin que nous puissions insérer l'élément à n'importe quelle position. Nous pouvons obtenir la position en utilisant la fonction itératrice start() ou end().
  2. Le deuxième paramètre est l'élément à insérer dans le vecteur.

Considérons le vecteur « produits chimiques » avec deux éléments.

  1. Insérez « Manganèse » en première position – début (produits chimiques)
  2. Insérez « Cuivre » à la dernière position – fin (produits chimiques)
  3. Insérez « Soufre » en troisième position – begin(chemicals)+2
#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits chimiques

vecteur < chaîne > produits chimiques = { 'Oxygène' , 'CO' } ;

cout << « Produits chimiques réels : » << fin ;

pour ( int je = 0 ; je < produits chimiques. taille ( ) ; je ++ )

cout << produits chimiques [ je ] << fin ;



// Insère l'élément en première position

produits chimiques. emplace ( commencer ( produits chimiques ) , 'Manganèse' ) ;



// Insère l'élément à la dernière position

produits chimiques. emplace ( fin ( produits chimiques ) , 'Cuivre' ) ;



// Insère l'élément à la troisième position

produits chimiques. emplace ( commencer ( produits chimiques ) + 2 , 'Soufre' ) ;



cout << ' \n Produits chimiques finaux : ' << fin ;

pour ( int je = 0 ; je < produits chimiques. taille ( ) ; je ++ )

cout << produits chimiques [ je ] << fin ;

}

Sortir:

Désormais, le vecteur final contient cinq éléments (fournis dans la capture d'écran suivante).

Étendre le vecteur en utilisant Emplace_Back()

Un élément peut être ajouté (en ajoutant à la fin du vecteur), ce qui peut être fait en utilisant le vecteur::emplace_back() fonction.

Syntaxe:

vecteur. emplace_back ( élément )

Il est obligatoire de passer en paramètre l'élément à ajouter au vecteur.

Ajoutons deux éléments l'un après l'autre en utilisant la fonction emplace_back().

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - produits chimiques

vecteur < chaîne > produits chimiques = { 'Oxygène' , 'CO' } ;

cout << « Produits chimiques réels : » << fin ;

pour ( int je = 0 ; je < produits chimiques. taille ( ) ; je ++ )

cout << produits chimiques [ je ] << fin ;



// Insère du manganèse à la fin du vecteur

produits chimiques. emplace_back ( 'Manganèse' ) ;



// Insère du manganèse à la fin du vecteur

produits chimiques. emplace_back ( 'Cuivre' ) ;





cout << ' \n Produits chimiques finaux : ' << fin ;

pour ( int je = 0 ; je < produits chimiques. taille ( ) ; je ++ )

cout << produits chimiques [ je ] << fin ;

}

Sortir:

Désormais, le vecteur final contient quatre éléments après avoir ajouté « Manganèse » et « Cuivre ».

Élément maximum d'un vecteur

  1. Créez un vecteur avec quelques éléments.
  2. Pour trouver le maximum d'éléments présents dans le vecteur, utilisez la fonction *max_element() qui accepte deux itérateurs comme arguments. Ces deux paramètres font office de plage et l'élément maximum est renvoyé dans la plage fournie. La position de départ est start() et la dernière position est end().
* élément_max ( premier_index, dernier_index )

Considérons un vecteur nommé « item_costs » qui contient cinq valeurs de type entier et renvoie l'élément maximum.

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - item_costs

vecteur < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Coût des articles : \n ' ;

pour ( int je = 0 ; je < item_costs. taille ( ) ; je ++ )

cout << item_costs [ je ] << fin ;



// Renvoie l'élément maximum du vecteur ci-dessus - item_costs

cout << ' \n Coût maximum : ' << * élément_max ( commencer ( item_costs ) ,fin ( item_costs ) ) ;

}

Sortir:

Ici, 8900 est l'élément maximum parmi tous les éléments présents dans le vecteur « item_costs ».

Élément minimum d'un vecteur

  1. Créez un vecteur avec quelques éléments.
  2. Pour trouver l'élément minimum présent dans le vecteur, utilisez la fonction *min_element() qui accepte deux itérateurs comme arguments. Ces deux paramètres font office de plage et l'élément minimum (moins que tous les autres éléments) est renvoyé dans la plage fournie. La position de départ est start() et la dernière position est end().
* min_element ( premier_index, dernier_index )

Utilisez le même vecteur que celui créé pour trouver l'élément maximum et trouver l'élément minimum à l'aide de la fonction *min_element().

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - item_costs

vecteur < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Coût des articles : \n ' ;

pour ( int je = 0 ; je < item_costs. taille ( ) ; je ++ )

cout << item_costs [ je ] << fin ;



// Renvoie l'élément minimum du vecteur ci-dessus - item_costs

cout << ' \n Coût minimum : ' << * min_element ( commencer ( item_costs ) ,fin ( item_costs ) ) ;

}

Sortir:

Ici, 200 est l'élément minimum parmi tous les éléments présents dans le vecteur « item_costs ».

Somme des éléments dans un vecteur

Pour renvoyer la somme de tous les éléments présents dans le vecteur, le accumuler() la fonction en C++ STL est utilisée. Il accepte trois paramètres. Le premier paramètre prend le premier index qui représente l'élément de début de la plage (spécifiez l'itérateur start()) et le deuxième paramètre prend le dernier index qui représente l'élément de fin de la plage (spécifiez l'itérateur end()). Enfin, nous devons transmettre la valeur initiale de la somme (dans notre cas, c'est 0).

accumuler ( premier_index, dernier_index, initial_val ) ;

Créez un vecteur nommé « item_costs » avec cinq éléments de type entier et calculez la somme.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - item_costs

vecteur < int > item_costs = { 8900 , 5677 , 200 , 1000 , 2300 } ;



cout << 'Coût des articles : \n ' ;

pour ( int je = 0 ; je < item_costs. taille ( ) ; je ++ )

cout << item_costs [ je ] << fin ;



// Renvoie la somme de tous les éléments du vecteur ci-dessus - item_costs

cout << ' \n Coût total: ' << accumuler ( commencer ( item_costs ) ,fin ( item_costs ) , 0 ) ;

}

Sortir:

La somme de 8900, 5677, 200, 1000, 2300 est 18077.

Multiplication élément par élément de deux vecteurs

  1. Créez deux vecteurs de type numérique et deux vecteurs doivent être de même taille (nombre total d'éléments présents dans le premier vecteur = nombre total d'éléments présents dans le deuxième vecteur).
  2. Déclarez un nouveau vecteur et utilisez le pour la boucle , effectuez l'opération de multiplication sur deux éléments à chaque itération et stockez la valeur dans le vecteur créé à l'aide de la fonction push_back().
  3. pour ( int c'est = 0 ; je < premier_vec. taille ( ) ; c'est ++ )

    {

    résultat_vecteur. repousser ( premier_vec [ c'est ] * sec_thing [ c'est ] ) ;

    }
  4. Affichez les éléments présents dans le vecteur résultant en l'itérant.

Créez un vecteur nommé « item_costs » avec cinq éléments de type entier et calculez la somme.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créez deux vecteurs - products1 et products2 avec 5 éléments chacun

vecteur < int > produits1 = { dix , vingt , 30 , 40 , cinquante } ;

vecteur < int > produits2 = { cinquante , 40 , 30 , 70 , 60 } ;



vecteur < int > result_products ;



// Effectue une multiplication par élément

pour ( int je = 0 ; je < produits1. taille ( ) ; je ++ ) {

result_products. repousser ( produits1 [ je ] * produits2 [ je ] ) ;

}



// Afficher le vecteur résultant

cout << 'Multiplication vectorielle : \n ' ;

pour ( int rés : result_products )

cout << rés << fin ;

}

Sortir:

Itération - 1 : dix * cinquante => 500

Itération - 2 : vingt * 40 => 800

Itération - 3 : 30 * 30 => 900

Itération - 4 : 40 * 70 => 2800

Itération - 5 : cinquante * 60 => 3000

Produit scalaire de deux vecteurs

Dans le cas des vecteurs C++, le produit scalaire est défini comme la « somme des produits des entrées correspondantes des deux séquences de vecteurs ».

Syntaxe:

produit_intérieur ( Vector1 en premier, Vector1 en dernier, Vector2 en premier, Initial_Val )

Utilisez la fonction inner_product() pour renvoyer le produit scalaire. Cette fonction prend quatre paramètres obligatoires.

Ici:

  1. Le premier paramètre fait référence à un itérateur qui pointe vers le début du premier vecteur (à préciser à l'aide de la fonction begin()).
  2. Le deuxième paramètre fait référence à un itérateur qui pointe vers la fin du premier vecteur (à préciser à l'aide de la fonction end()).
  3. Le troisième paramètre fait référence à un itérateur qui pointe vers le début du deuxième vecteur (à préciser à l'aide de la fonction Begin()).
  4. La valeur initiale doit être transmise comme dernier paramètre qui est un entier pour l'accumulation du produit scalaire.

Utilisez le même programme créé pour la multiplication de deux vecteurs et utilisez la fonction innsr_product() pour trouver le produit scalaire des deux vecteurs.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créez deux vecteurs - products1 et products2 avec 5 éléments chacun

vecteur < int > produits1 = { dix , vingt , 30 , 40 , cinquante } ;

vecteur < int > produits2 = { cinquante , 40 , 30 , 70 , 60 } ;



// Afficher le vecteur résultant

cout << 'Produit scalaire des produits1 et des produits2 : ' ;

cout << produit_intérieur ( commencer ( produits1 ) ,fin ( produits1 ) ,commencer ( produits2 ) , 0 ) ;

}

Sortir:

( dix * cinquante ) + ( vingt * 40 ) + ( 30 * 30 ) + ( 40 * 70 ) + ( cinquante * 60 )

=> 500 + 800 + 900 + 2800 + 3000

=> 8000

Convertir un ensemble en vecteur

Il existe de nombreuses façons de convertir un ensemble en vecteur en passant tous les éléments élevés dans un ensemble en vecteur. Le moyen le meilleur et le plus simple consiste à utiliser la fonction std::copy().

Syntaxe

norme :: copie ( sourceIterator en premier, sourceIterator en dernier, destinationIterator en premier )

Utilisez le std :: copie () fonction qui insère les éléments d'un ensemble dans le vecteur. Cela prend trois paramètres.

Ici:

  1. Le premier paramètre fait référence à l'itérateur source qui pointe vers le premier élément de l'itérateur. Ici, set est l'itérateur source spécifié à l'aide de la fonction start().
  2. De même, le deuxième paramètre pointe vers le dernier élément (fonction end()).
  3. Le troisième paramètre fait référence à l'itérateur de destination qui pointe vers le premier élément (spécifié à l'aide de la fonction start()) dans l'itérateur.

Créons un ensemble avec cinq étudiants et copions tous les éléments dans un vecteur en utilisant la fonction précédente.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un ensemble - élèves avec 5 éléments

ensemble < chaîne > étudiants = { 'Sravan' , 'Policier' , 'Madhu' , 'Méghana' , 'Lavania' } ;

cout << 'Ensemble: \n ' ;

pour ( chaîne je : étudiants )

cout << je << fin ;



// Créer un vecteur - taille student_vcof égale à la taille de l'ensemble

vecteur < chaîne > étudiant_vc ( étudiants. taille ( ) ) ;



// Insérer des éléments d'un Set - étudiants dans un Vecteur - student_vc.

copie ( étudiants. commencer ( ) , étudiants. fin ( ) , étudiant_vc. commencer ( ) ) ;



cout << ' \n Vecteur: \n ' ;

pour ( chaîne je : étudiant_vc )

cout << je << fin ;

}

Sortir:

Désormais, tous les éléments présents dans l'ensemble « Étudiants » sont copiés dans le vecteur « students_vc ».

Supprimer les éléments en double

  1. Tout d’abord, nous devons trier les éléments du vecteur afin que tous les éléments en double soient adjacents les uns aux autres en utilisant le std :: trier () fonction.
  2. norme :: trier ( Le vecteur d’abord, le vecteur en dernier ) ;
  3. Utilisez la fonction std::unique() pour que les éléments en double soient sélectionnés. En même temps, utilisez la fonction effacer() pour supprimer les doublons renvoyés par la fonction std::unique(). L'ordre des éléments peut changer dans le vecteur final.
  4. vecteur. effacer ( norme :: unique ( Le vecteur d’abord, le vecteur en dernier ) , Vecteur dernier ) )

Créez le vecteur « étudiants » avec 10 éléments et renvoyez le vecteur en supprimant les doublons.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - étudiants avec 10 éléments

vecteur < chaîne > étudiants = { 'Sravan' , 'Policier' , 'Madhu' , 'Méghana' , 'Lavania' ,

'Sravan' , 'Policier' , 'Madhu' , 'Méghana' , 'Lavania' } ;

cout << 'Étudiants: \n ' ;

pour ( chaîne je : étudiants )

cout << je << ' ' ;



// Trie tous les éléments du vecteur étudiants.

trier ( commencer ( étudiants ) , fin ( étudiants ) ) ;



// Utilisez la fonction unique() pour supprimer les doublons avec la fonction effacer()

étudiants. effacer ( unique ( commencer ( étudiants ) , fin ( étudiants ) ) , fin ( étudiants ) ) ;



cout << ' \n \n Étudiants uniques : \n ' ;

pour ( auto c'est = ccommencer ( étudiants ) ; c'est ! = quelques ( étudiants ) ; ++ c'est ) {

cout << * c'est << ' ' ;

}

}

Sortir:

Désormais, tous les éléments sont uniques dans le vecteur.

Convertir un vecteur en un ensemble

Set n'autorise pas les éléments en double. Si vous tapez pour insérer un vecteur dans un ensemble contenant des doublons, ils seront ignorés. Nous utilisons la même fonction std::copy() que celle utilisée dans le scénario précédent qui convertissait l'ensemble en vecteur.

Dans ce scénario:

  1. Le premier paramètre prend le vecteur comme itérateur source spécifié à l’aide de la fonction start().
  2. Le deuxième paramètre prend le vecteur comme itérateur source spécifié à l’aide de la fonction end().
  3. Passez la fonction std::inserter() qui est utilisée pour écraser/copier automatiquement les éléments à une position spécifique dans l'ensemble en fournissant l'ensemble et l'itérateur qui pointent vers la fin de l'ensemble en tant que paramètres.

Créons un vecteur avec 10 entiers et copions les éléments dans un ensemble.

#include

en utilisant espace de noms norme ;

principal ( )

{

// Crée un ensemble - marques avec 10 valeurs

vecteur < int > Des marques = { 12 , 3.4 , 56 , 78 , 65 , 78 , 90 , 90 , 78 , 3.4 } ;

cout << 'Vecteur: \n ' ;

pour ( int je : Des marques )

cout << je << ' ' ;



// Créer un ensemble - marks_set de taille égale à la taille du vecteur

ensemble < int > mark_set ;



// Insérer des éléments d'un Set - étudiants dans un Vecteur - student_vc.

copie ( commencer ( Des marques ) ,fin ( Des marques ) , inséreuse ( mark_set,fin ( mark_set ) ) ) ;



cout << ' \n \n Ensemble: \n ' ;

pour ( int je : mark_set )

cout << je << ' ' ;

}

Sortir:

Le vecteur existant nommé « marques » a 10 valeurs. Après l'avoir copié dans l'ensemble «marks_set», il ne contient que six éléments car les quatre autres éléments sont dupliqués.

Supprimez les chaînes vides

Les chaînes vides présentes dans un vecteur ne sont pas utilisées. C'est une bonne pratique de supprimer les chaînes vides présentes dans le vecteur. Voyons comment supprimer les chaînes vides du vecteur C++ :

  1. Itérez le vecteur en utilisant la boucle « for ».
  2. À chaque itération, vérifiez si l'élément est vide ('') ou n'utilisez pas l'opérateur '==' avec la fonction membre at().
  3. À l'aide de la fonction std::erase(), supprimez les chaînes vides après avoir vérifié la condition précédente.
  4. Répétez les étapes 2 et 3 jusqu'à la fin du vecteur.

Créons le vecteur « entreprises » avec 10 chaînes. Parmi eux, cinq sont vides et nous les supprimons en mettant en œuvre l'approche précédente.

#include

#include

en utilisant espace de noms norme ;

principal ( ) {



vecteur < chaîne > entreprises { 'Société-A' , '' , 'Société-B' ,

'' , 'Société-C' , '' , 'Entreprise-D' , '' , '' , '' } ;



// Itérer sur les entreprises

// et supprime les éléments vides en utilisant delete()

pour ( int c'est = 1 ; c'est < entreprises. taille ( ) ; ++ c'est ) {

si ( entreprises. à ( c'est ) == '' ) {

entreprises. effacer ( entreprises. commencer ( ) + c'est ) ;

-- c'est ;

}
}

// Afficher le vecteur


pour ( auto & je : entreprises ) {

cout << je << fin ;

}

}

Sortir:

Désormais, le vecteur « entreprises » contient les chaînes non vides.

Écrire un vecteur dans un fichier texte

Voyons comment écrire tous les éléments présents dans un vecteur dans un fichier en utilisant les indices vectoriels en utilisant le fstream .

  1. Insérez-y quelques éléments à l'aide de la fonction push_back après avoir initialisé le vecteur.
  2. Utilisez la fonction open() de la bibliothèque « fstream » avec le mode out.
  3. Parcourez chaque élément présent dans le vecteur en utilisant les indices dans une boucle « for » et écrivez chaque élément dans le fichier fourni.
  4. Enfin, fermez le fichier.

Implémentons l'approche précédente en exécutant un code C++.

#include

#include

#include

#include

en utilisant espace de noms norme ;

principal ( )

{

// Créer un vecteur - v_data

// et insérez-y deux éléments.

vecteur < chaîne > v_données ;

v_data. repousser ( 'Accueillir' ) ;

v_data. repousser ( 'vers LinuxAstuce' ) ;

flux f ;



// Ouvrir le fichier

F. ouvrir ( 'fichier_écrit.txt' ,ios_base :: dehors ) ;

// Itère chaque élément du vecteur et écrit dans le fichier un par un.

pour ( int je = 0 ; je < v_data. taille ( ) ; je ++ )

{

F << v_données [ je ] << fin ;

}

// Ferme le fichier

F. fermer ( ) ;

}

Sortir:

Le vecteur « v_data » contient deux éléments et un fichier est créé dans le chemin où le programme est exécuté avec les éléments présents dans le vecteur.

Créer un vecteur à partir d'un fichier texte

Nous avons appris à écrire les éléments présents dans le vecteur dans un fichier texte. Ici, créons un vecteur à partir du contenu présent dans le fichier texte.

  1. Créé un ' ifstream' variable qui sert à lire les informations du fichier texte dans lequel nous créons le vecteur à partir du fichier.
  2. Créez un vecteur vide pour stocker le contenu du fichier et utilisez une variable de chaîne vide comme indicateur pour vérifier la fin du fichier.
  3. Lisez la ligne suivante du fichier jusqu'à ce qu'elle atteigne la fin (essentiellement en utilisant la boucle « while »). Utilisez la fonction push_back() pour lire la ligne suivante et la pousser dans le vecteur.
  4. Affichez séparément la ligne présente dans la ligne pour voir les éléments présents dans le vecteur sur la console.

Implémentons l'approche précédente en exécutant le code C++. Considérons le fichier « data.txt » avec le contenu suivant. Ici, le nom du vecteur est « v_data ».

#include

en utilisant espace de noms norme ;

principal ( )

{

// Ouvre le fichier texte - données
fichier ifstream ( 'données.txt' ) ;

// Créer un vecteur - v_data de type - chaîne


vecteur < chaîne > v_données ;

le string était ;

// Lit la ligne suivante du data.txt
// jusqu'à la fin.


alors que ( déposer >> était ) {

// Lit la ligne suivante et la pousse dans le v_data

v_data. repousser ( était ) ;

}



// Affiche la ligne présente dans la ligne séparément.

copie ( v_data. commencer ( ) , v_data. fin ( ) , ostream_iterator < chaîne > ( cout , ' \n ' ) ) ;

}

Sortir:

Nous pouvons voir que « v_data » contient cinq éléments provenant du fichier.

Conclusion

Dans ce long article, nous avons exploré tous les exemples possibles utilisés dans les applications temps réel liées aux vecteurs dans le langage de programmation C++. Chaque exemple est expliqué avec la syntaxe, les paramètres et un exemple avec sortie. Des commentaires sont ajoutés dans chaque code pour avoir une compréhension claire du code.