Maison > développement back-end > C++ > le corps du texte

Comment copier un conteneur STL C++ ?

王林
Libérer: 2024-06-05 11:51:57
original
873 Les gens l'ont consulté

Il existe trois façons de copier un conteneur STL C++ : Utilisez le constructeur de copie pour copier le contenu du conteneur dans un nouveau conteneur. Utilisez l'opérateur d'affectation pour copier le contenu d'un conteneur vers le conteneur cible. Utilisez l'algorithme std::copy pour copier les éléments dans le conteneur.

如何复制C++ STL容器?

Comment copier un conteneur STL C++

Préface

La bibliothèque de modèles standard (STL) C++ fournit une série de classes de conteneurs pour stocker et gérer les données. Copier ces conteneurs est souvent indispensable, par exemple, lorsque l'on doit ajouter des éléments à un autre conteneur, ou lorsque l'on doit conserver le contenu du conteneur avant de passer des arguments à une fonction.

Utilisez le constructeur de copie

Le conteneur STL fournit un constructeur de copie, qui copie le contenu du conteneur dans un nouveau conteneur. La syntaxe du constructeur de copie est la suivante :

std::vector<int> v1{1, 2, 3};
std::vector<int> v2(v1); // 复制 v1 到 v2
Copier après la connexion

Utilisation de l'opérateur d'affectation

L'opérateur d'affectation (=) peut également être utilisé pour copier des conteneurs. L'opérateur d'affectation copie le contenu du conteneur source dans le conteneur cible, en supprimant tous les éléments existants dans le conteneur cible. La syntaxe de l'opérateur d'affectation est la suivante :

std::vector<int> v1{1, 2, 3};
std::vector<int> v2;
v2 = v1; // 复制 v1 到 v2
Copier après la connexion

Utilisation de std::copy

L'algorithme std::copy peut être utilisé pour copier des éléments dans un conteneur. La syntaxe de std::copy est la suivante :

std::vector<int> v1{1, 2, 3};
std::vector<int> v2(v1.size());
std::copy(v1.begin(), v1.end(), v2.begin()); // 复制 v1 到 v2
Copier après la connexion

Cas réel

Supposons que nous ayons un conteneur vectoriel contenant les informations de l'élève :

struct Student {
  int id;
  std::string name;
};

std::vector<Student> students = {
  {1, "Alice"},
  {2, "Bob"},
  {3, "Charlie"},
};
Copier après la connexion

Pour copier ce conteneur, nous pouvons utiliser le constructeur de copie :

std::vector<Student> students_copy(students);
Copier après la connexion

ou utiliser l'opération d'affectation Symbole :

std::vector<Student> students_copy;
students_copy = students;
Copier après la connexion

Désormais, étudiants_copie contiendra les mêmes informations sur les étudiants que les étudiants.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal