C ++ stdcopy

C ++ stdcopy
«Lorsque les positions de début et de fin de la source sont spécifiées, tous les éléments de cette plage seront copiés dans la destination spécifiée. Le C ++ STL fournit plusieurs variantes de copie () qui permettent d'effectuer des opérations de copie de différentes manières, chacune avec une utilisation unique. Tous ces éléments sont décrits dans l'algorithme. Ces fonctions sont expliquées dans cet article pour une utilisation dans la programmation régulière."

Exemple 1: Utilisation de Copy () et Copy_n () Méthode

copy (start_iter1, end_iter1, start_iter2):La fonction de copie générale, copie (strat_iter1, end_iter, start_iter2), est utilisée pour déplacer un cluster d'un conteneur à un autre. Il a besoin de trois arguments:

Démarrer Iter1: Le point de départ des éléments de copie est indiqué par le pointeur Start Iter, qui pointe vers le début du conteneur source.

Fin Iter: le dispositif de pointage vers la fin du conteneur source, à partir de laquelle les éléments doivent être copiés.

Démarrer Iter2: la référence au début du conteneur cible, à partir de laquelle les éléments doivent être copiés.

copy_n (start_iter1, num, start_iter2): Le nombre de composants qui doivent être copiés dans le conteneur cible peuvent être déterminés à l'aide de cette méthode de copie. De plus, il accepte les trois arguments suivants:

Démarrer Iter1: l'identifiant pour le début du conteneur source, à partir de laquelle les éléments doivent être copiés.

NUM: un entier indiquant le nombre de nombres à transférer dans le conteneur de destination, à commencer par start iter1. Lorsqu'un nombre négatif est fourni, rien ne se passe.

Démarrer ITER2: Le point de départ du conteneur de destination, identifié par l'adresse Start Iter, est où les éléments doivent commencer à copier.

Le code de cette illustration est joint dans la capture d'écran apposée.

Dans l'exemple ici, nous avons inclus trois bibliothèques principales de C++. Cet algorithme de bibliothèque joue un rôle essentiel dans ce programme car il donne accès à la fonction de copie std ::. Ensuite, nous avons utilisé l'espace de noms MST dans le programme. La déclaration d'espace de noms d'utilisation indique simplement que tous les objets de l'espace de noms STD doivent être disponibles dans la portée où il est présent sans nécessiter le préfixe std ::.

Après cela, nous avons une méthode principale de programme à l'intérieur duquel nous avons déclaré une variable «VEC_1» d'une classe vectorielle et l'avons initialisée avec l'ensemble de valeurs numériques. Nous avons également défini deux autres variables comme «VEC_2» et «VEC_3». Nous avons déclaré ces variables avec les vecteurs de destination. Ensuite, nous avons déployé la méthode Copy (), qui prend trois arguments «VEC_1.commencer "," vect_1.fin ", et" vect_2.commencer »à copier les deux premières valeurs des vecteurs.

Pour imprimer les vecteurs copiés, nous avons utilisé la boucle FOR, qui a vécu sur chaque élément vectoriel copié et affiché les éléments vectoriels. Ensuite, nous avons utilisé la méthode Copy_n (), qui affichera les cinq premiers éléments des vecteurs. Pour l'impression, les éléments vectoriels copiés pour la boucle sont utilisés comme ci-dessus.

La sortie générée par la méthode Copy () et Copy_n () est la suivante:

Exemple 2: Utilisation de Copy_if () et Copy_Backward ()

copy_if (): Comme le montre le nom, cette fonction copie conformément au résultat d'une «condition."Ceci est donné à l'aide d'une fonction offrant une valeur booléenne comme quatrième argument. Cette fonction nécessite quatre arguments, dont trois sont identiques à ceux de copy () et une fonction supplémentaire qui, si elle revient vrai, détermine si un nombre est dupliqué ou non.

copy_backward (): Lors de l'utilisation de cette fonction, les éléments sont copiés dans le conteneur cible vers l'arrière jusqu'à ce que tous les nombres n'aient pas été copiés. Start_iter2 est l'endroit où le processus de copie commence, mais il continue en arrière. Il utilise également les mêmes défenses qu'une copie ().

Le code de cette illustration est joint dans la capture d'écran apposée.

Dans la première étape de ce programme, nous avons inséré nos bibliothèques pour récupérer les fonctions C ++. Ensuite, nous déclarons le vecteur comme V1 et initialisons le vecteur avec les entiers. Nous avons déclaré d'autres variables sous le nom de V2 et V3, qui sont les vecteurs de destination. Après cela, nous avons la fonction copy_if () qui ne copie que les nombres impairs des vecteurs. Ensuite, la copie vers l'arrière () est utilisée pour copier les trois premiers éléments, avec la quatrième position de fin. Nous avons imprimé les éléments vectoriels copiés avec l'aide de For Loop.

La sortie générée par la méthode Copy_if () et Copy_Backward () est la suivante:

Exemple 3: Utilisation de la méthode inserter ()

Saisissons la syntaxe inserter () avant d'effectuer l'action Copy ().

# copy (strat_iter1, end_iter1, inserter (conteneur & x, typename contener :: iterator it));

Nous utilisons Inserter () comme destination à laquelle nous souhaitons transférer les éléments du conteneur. L'inserteur () a besoin de deux entrées. Le premier est un conteneur de type arbitraire, tandis que le second est un itérateur à l'intérieur du conteneur.

Il donne une instance d'itérateur d'insertion qui fonctionne actuellement avec n'importe quelle sorte de conteneur. À l'aide de cette fonction de wrapper, des instances d'insertion d'itérateurs peuvent être créées. Il peut être difficile et entraver la programmation générique de devoir connaître le type entier exact du conteneur lors de la saisie du nom du pourcentage itérateur. En utilisant cette fonction, vous pouvez bénéficier d'une déduction automatique des paramètres de modèle et faire correspondre automatiquement au compilateur les bons types pour vous.

Le code de cette illustration est joint dans la capture d'écran apposée.

Ici, nous avons commencé avec notre méthode principale. À l'intérieur, nous avons déclaré le vecteur v1 et définissons les vecteurs avec les valeurs numériques. À partir de l'itérateur C ++, nous avons créé l'objet «ITR». De plus, nous avons déclaré une autre variable, v2, dans notre programme. Ensuite, nous avons invoqué l'insert () à l'intérieur de la fonction de copie, qui copie les éléments vectoriels par itération. En fin de compte, nous avons la boucle FOR, qui imprimera les éléments copiés des vecteurs spécifiés.

La sortie générée par la méthode inserter () est la suivante:

Conclusion

Dans l'article, nous avons discuté des fonctions STD :: Copie que C ++ prend en charge. Quatre méthodes sont démontrées avec la syntaxe et l'exemple de programme. Les paramètres et fonctions de chaque approche diffèrent. Ces techniques sont accessibles dans le fichier d'en-tête pour l'algorithme.