Stdmove en C ++

Stdmove en C ++

Tout comme de nombreuses autres fonctions C ++, la fonction std :: move () est unique dans sa fonctionnalité. Comme son nom l'indique, il a été utilisé pour déplacer la valeur d'une variable à une autre tout en supprimant la valeur de la première variable. Il peut être utilisé avec ou sans la fonction push_back () de la bibliothèque vectorielle. Alors, commençons l'article pour voir si cela fonctionne. Veuillez créer un nouveau fichier C ++ et l'ouvrir.

Exemple 01:

Commençons par le premier exemple. Les fichiers d'en-tête principaux de ce code ont été ajoutés, je.e., iostream, vecteur, corde et utilitaire. Nous devons ajouter l'espace de noms standard «Std.»Ainsi, deux variables de type chaîne, S1 et S2, sont initialisées dans la fonction Main (). Voici l'itérateur de type vecteur «V» d'un type de chaîne. L'objet itérateur «V» est utilisé pour appliquer la fonction push_back () sur S1. Cela signifie que la valeur S1 variable a été poussée au dernier emplacement du vecteur. Comme le vecteur est vide, il sera inséré en premier. Voici le «std :: move ()» pour ne pas créer un autre objet vectoriel pour y ajouter de la valeur. Ainsi, la fonction push_back () utilise la fonction «std :: move ()» pour déplacer la chaîne S2 vers un «V» vectoriel à son dernier emplacement. L'énoncé COUT est là pour nous informer du vecteur résultant. La boucle «pour» est utilisée pour obtenir les valeurs du vecteur comme liste et les afficher sur le terminal via la clause «cout». Le code se termine ici. Enregistrez-le et fermez le fichier pour avancer.

inclure
#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()
String S1 = "Hello";
String S2 = "World";
vecteurV;
V.push_back (s1);
V.push_back (std :: move (s2));
couter << "Overall Vector:";
pour (String & x: v)
couter << " << x << '\n';
retour 0;

Le code doit être compilé avant son exécution pour résoudre toute erreur. Par conséquent, le compilateur G ++ a été utilisé jusqu'à présent. Le "./un.OUT ”L'instruction éternelle est là pour exécuter notre code C ++. Vous pouvez voir que le résultat montre le vecteur de deux cordes.

Exemple 02:

Jetons un coup d'œil à un autre exemple d'utilisation de std :: move () en C ++ de la manière la plus simple possible. Le code est démarré avec les mêmes bibliothèques d'en-tête, je.e., iostream, vecteur, corde et utilitaire. Après cela, l'espace de noms «STD» standard est nécessaire pour éviter d'utiliser le mot-clé «STD» encore et encore dans le code. La fonction Main () est démarrée avec l'initialisation d'une variable de chaîne «S» avec une valeur de chaîne. Le «VEC» vectoriel du type de chaîne est déclaré vide. Comme il n'y a qu'une seule chaîne, le vecteur résultant sera construit avec cette seule variable. Ainsi, la fonction push_back () est appelée à l'aide de l'objet vectoriel «Vec."Cette fonction copie la chaîne
«S» à placer à la dernière place d'un vecteur «vec."Il ne supprime pas la valeur de la variable" S ". L'instruction COUT affiche la valeur de la chaîne «S» sur le shell après avoir utilisé la fonction push_back (). Encore une fois, la même valeur est déplacée vers le dernier emplacement d'un vecteur utilisant la fonction «Move» dans la méthode «push_back ()». L'instruction COUT affichera la valeur de «S» après avoir utilisé la méthode «Move». Dans le dernier, la clause COUT est utilisée pour montrer les valeurs «VEC» vectorielles qui en résulte sur le shell.

#inclure
#inclure
#inclure
#inclure
Utilisation de Namespace Std;
int main()
String S = "Linux";
vecteurVEC;
vec.push_back (s);
couter << "After Copy String: " << s << endl;
vec.push_back (move (s));
couter << "After Move String: " << s << endl;
couter<<"Vector Elements: "<retour 0;

Le code a été exécuté. Premièrement, il montre la valeur de «S» après l'avoir copie au vecteur «Vec."Après avoir utilisé un mouvement (), la variable" S "est devenue vide. Dans le dernier, la valeur vectorielle a été affichée.

Exemple 03:

Ayons un dernier mais non le moindre exemple de mouvement (). Une bibliothèque unique et un espace de noms standard sont inclus. La fonction principale () est démarrée avec l'initialisation de deux vecteurs de type entier, V1 et V2, ayant une certaine plage. La première instruction COUT montre que nous afficherons la valeur du premier vecteur v1. La boucle «pour» est là pour itérer les valeurs du premier vecteur v1 de sa position de départ à sa fin en utilisant la fonction «taille» dedans. À chaque itération, il affiche chaque valeur du vecteur. La même chose a été fait pour Vector V2 pour afficher ses valeurs entières via la boucle «pour».

La fonction std :: move () utilise la fonction début (). Le premier paramètre, v1.begin () montre la valeur de démarrage du vecteur v1 à placer dans le vecteur v2. Le deuxième paramètre, «V1.begin () + 4 », montre le dernier emplacement de v1, que nous pouvons additionner dans le vecteur v2. Le troisième paramètre, «v2.begin () + 1 », montre le point de départ du vecteur V2 où nous devons ajouter ou remplacer les valeurs. La dernière boucle «pour» est là pour itérer le vecteur V2 nouvellement mis à jour et l'afficher sur le shell.

#inclure
Utilisation de Namespace Std;
int main()
vecteurv1 2, 4, 6, 8, 10;
vecteurv2 0, 0, 0, 0, 0;
couter <<"Vector 1: ";
pour (int i = 0; icouter << " " << v1[i];
couter << endl;
couter <<"Vector 2: ";
pour (int i = 0; icouter << " " << v2[i];
couter << endl;
STD :: Move (V1.begin (), v1.begin () + 4, v2.begin () + 1);
couter <<"Vector 2 After move: ";
pour (int i = 0; icouter << " " << v2[i];
couter << endl;
retour 0;

En exécution, les deux vecteurs sont affichés séparément en premier. Après cela, le vecteur V2 mis à jour montre les 4 dernières valeurs mises à jour.

Conclusion:

Cet article explique des exemples de la fonction std :: move () en c++. Nous avons utilisé la fonction push_back () pour élaborer plus clairement dans nos codes. Nous avons couvert le concept de vecteurs dans nos codes pour utiliser la fonction de déplacement.