Maison  >  Article  >  développement back-end  >  Comment copier un conteneur STL C++ ?

Comment copier un conteneur STL C++ ?

王林
王林original
2024-06-05 11:51:57804parcourir

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

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!

Déclaration:
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