Échange C ++ STD

Échange C ++ STD
«L'échange est l'acte d'échanger deux ou plusieurs choses. Les données entre deux variables en programmation peuvent être commutées. L'échange de choses entre deux personnes est possible dans la vraie vie. Les valeurs de deux objets peuvent être échangées à l'aide de la fonction de bibliothèque standard swap () en C++. Il a été placé sous l'en-tête «Utilitaire» dans C11. La fonction swap () en C ++ a une complexité de n pour les tableaux car chaque élément doit être échangé individuellement, tandis que la difficulté de la fonction des constantes est constante. La fonction swap () jette un avertissement ou une erreur si l'un des éléments variables échoue. Regardez la signature de la fonction pour std :: swap () ci-dessous:

Syntaxe:

modèle < class T > void swap (t & variable_1, t & variable_2);

La valeur de la première variable et de la deuxième variable, toutes deux des valeurs de magasin, doivent être échangées. La fonction change simplement les valeurs des variables; il n'a pas de sortie."

Fonctionnement de la fonction swap () en c++

La fonction d'échange est implémentée en C ++ en utilisant les trois lignes suivantes.

Modèle void swap (t & i, t & j)
T temp = std :: move (i);
i = std :: move (j);
j = std :: move (temp);

L'énoncé «t temp = std :: move (i)»; fait une copie de l'élément «i» et le double. Ici, «i = std :: move (j)»; rejette les éléments d'origine de "I" et stocke la copie "I" de "J" à la place de l'original "J". La formule «j = std :: move (temp)»; Enregistrer «je» avec un clone de température et retirer le contenu identique de la température. Supprimer également la variable temporaire une fois l'exécution de la fonction swap ().

Exemple 1: Programme à l'aide de la méthode STD :: Déplacer pour échanger

Comme démontré ci-dessous, nous pouvons échanger deux objets en utilisant la fonction C ++ 11 Std :: Move.

#inclure
#inclure
modèle
Void Swap (T&A, T&B)

T temp = std :: move (a);
a = std :: move (b);
b = std :: move (temp);

int main()

std :: vector list = 10, 12, 13, 15, 16, 17;
int i = 3, j = 5;
swap (list [i], list [j]);
pour (int i: list)
std :: cout<
retour 0;

Nous avons une déclaration de modèle qui a un objet «t». Après cela, nous avons établi la fonction comme «échange». La fonction prend les deux paramètres et A et & B, de type «t». À la suite des arguments T&A, T&B faisant référence ou stockant l'adresse de la variable passée et s'applique directement à eux sans revenir, la fonction Swap (T&A, T&B) est appelée un appel par référence.

À l'intérieur de l'échange de vide, nous avons appliqué l'algorithme de l'échange en utilisant la méthode STD :: Move. Ensuite, nous avons construit le programme principal du programme. Ici, nous avons déclaré la variable «liste» et l'avons initialisée avec la liste des valeurs numériques. Nous avons défini les valeurs pour les «I» et «J» pour échanger. La valeur numérique située au deuxième index a été remplacée par la valeur numérique au cinquième index. Ensuite, nous avons appelé la fonction d'échange et passé les index «i» et «j» pour échanger. La boucle pour l'impression de la liste échangée.

La sortie affichait la liste modifiée. Vous pouvez observer que la nouvelle liste générée a échangé la valeur en fonction des index spécifiés.

Exemple 2: Programme à l'aide de la méthode STD :: Swap pour échanger

L'utilisation du mécanisme STD :: Swap trouvé dans l'en-tête de l'utilitaire (en C ++ 11) est le correctif habituel. Les valeurs de deux objets sont commutées pour le faire fonctionner.

#inclure
#inclure
#inclure
int main()

std :: vectorarr = 3, 6, 9, 15, 13;
int i = 3, j = 4;
std :: swap (arr [i], arr [j]);
pour (int i: arr)
std :: cout<
retour 0;

En importation du fichier d'en-tête, nous pouvons accéder à la fonction Swap dans notre programme. Ici, nous avons inclus le fichier d'en-tête avec deux bibliothèques plus importantes. Ensuite, nous avons établi la méthode principale int. À l'intérieur de la principale du programme, nous avons déclaré le vecteur en créant la variable «arr."La variable" arr "est initialisée avec les cinq éléments de l'entier. Les positions d'index sont affectées au «I» et au «J» pour échanger. Les variables «I» et «J» sont ensuite transmises à la méthode STD :: Swap pour l'échange de la valeur de l'index spécifié. Avec la boucle FOR, nous avons imprimé les tableaux échangés.

La liste obtenue après l'opération d'échange en utilisant la méthode STD :: Swap s'affiche comme suit:

Exemple 3: Programme à l'aide de la méthode STD :: ITER_SWAP à échanger

L'utilisation de l'algorithme STD :: ITER_SWAP, qui est répertorié dans l'en-tête de l'algorithme, est une option supplémentaire. La façon dont il fonctionne est en changeant les valeurs des objets que les itérateurs fournis pointent vers.

#inclure
#inclure
#inclure
#inclure
int main()

std :: vectorvec = 64, 61, 62, 63, 60;
int i = 0, j = 4;
auto itr1 = std :: suivant (vec.begin (), i);
auto iTr2 = std :: suivant (vec.begin (), j);
std :: iter_swap (itr1, itr2);
pour (int i: vec)
std :: cout<
retour 0;

À la méthode principale du programme, nous avons déclaré une variable vectorielle «VEC» et lui avons attribué une liste de nombres vectoriels. Ensuite, nous avons spécifié la position d'index à la variable «I» et «J». La méthode STD :: ITER_SWAP est invoquée qui prend l'ITER1 et ITER2 comme argument. L'ITER1 et ITER2 sont déclarés avec le mot clé automatique et ont l'opération d'itération. La méthode de la boucle FOR imprime les valeurs échangées du tableau vectoriel lors de l'exécution.

La méthode std :: iter_swap a réussi à échanger les valeurs des vecteurs spécifiés.

Exemple 4: Programme d'utilisation sans variables temporaires pour échanger

Cet exemple montre une nouvelle façon d'échanger des nombres dans le code C ++ sans l'utilisation de variables temporaires.

#inclure
Utilisation de Namespace Std;
int main()

int x1 = 2, x2 = 12;
couter<< "Before swapping." <couter<< "x1 = " << x1 << ", x2 = " << x2 <x1 = x1 + x2;
x2 = x1 - x2;
x1 = x1 * x2;
couter<< "\nAfter swapping." <couter<< "x1 = " << x1 << ", x2 = " << x2 <retour 0;

Examinons le fonctionnement de ce programme. Ici, nous avons déclaré X1 et X2, qui sont initialement définis avec le nombre, respectivement. Ensuite, en utilisant la formule x1 = x1 + x2, nous ajoutons x1 et x2 et mettons le résultat dans x1. Cela indique que x1 est égal à 2 plus 12. Par conséquent, est maintenant égal à 14. Ensuite, nous appliquons la formule x2 = x1 - x2. Cela indique que x2 = 14 - 12. Par conséquent, x2 est désormais égal à 2. Une fois de plus, nous appliquons la formule x1 = x1 - x2. Cela indique que x1 = 14 - 2. Par conséquent, x1 = 12 à la fin. En conséquence, les nombres ont été commutés.

Le numéro échangé avant et après s'affiche sur l'écran de l'invite suivant.

Conclusion

Ici, nous passons en revue une description complète de Swap () en C ++, son utilisation et quelques exemples qui montrent comment il fonctionne. En utilisant la fonction std :: swap (), les valeurs de deux variables peuvent être commutées. Le C ++ STL comprend une fonction intégrée appelée std :: swap (). Les appels de fonction Swap (T & Variable 1, T & Variable 2) par référence, et les surcharges C ++ Swap () en fonction du type de variables de données sont également expliquées dans ce tutoriel.