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.
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
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
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
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"}, };
Pour copier ce conteneur, nous pouvons utiliser le constructeur de copie :
std::vector<Student> students_copy(students);
ou utiliser l'opération d'affectation Symbole :
std::vector<Student> students_copy; students_copy = students;
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!