ホームページ  >  記事  >  バックエンド開発  >  C++ STL コンテナをコピーするにはどうすればよいですか?

C++ STL コンテナをコピーするにはどうすればよいですか?

王林
王林オリジナル
2024-06-05 11:51:57804ブラウズ

C++ STL コンテナをコピーするには 3 つの方法があります: コピー コンストラクターを使用して、コンテナの内容を新しいコンテナにコピーします。代入演算子を使用して、コンテナの内容をターゲット コンテナにコピーします。 std::copy アルゴリズムを使用して、コンテナー内の要素をコピーします。

如何复制C++ STL容器?

C++ STL コンテナをコピーする方法

はじめに

C++ 標準テンプレート ライブラリ (STL) は、データを保存および管理するための一連のコンテナ クラスを提供します。これらのコンテナのコピーは、要素を別のコンテナに追加する必要がある場合や、関数に引数を渡す前にコンテナの内容を保存する必要がある場合など、多くの場合不可欠です。

コピー コンストラクターを使用する

STL コンテナーは、コンテナーの内容を新しいコンテナーにコピーするコピー コンストラクターを提供します。コピー コンストラクターの構文は次のとおりです。

std::vector<int> v1{1, 2, 3};
std::vector<int> v2(v1); // 复制 v1 到 v2

代入演算子の使用

代入演算子 (=) を使用してコンテナをコピーすることもできます。代入演算子は、ソース コンテナの内容をターゲット コンテナにコピーし、ターゲット コンテナ内の既存の要素をすべて破棄します。代入演算子の構文は次のとおりです。

std::vector<int> v1{1, 2, 3};
std::vector<int> v2;
v2 = v1; // 复制 v1 到 v2

std::copy の使用

std::copy アルゴリズムを使用して、コンテナ内の要素をコピーできます。 std::copy の構文は次のとおりです:

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

実際のケース

学生情報を含むベクトル コンテナがあるとします:

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

std::vector<Student> students = {
  {1, "Alice"},
  {2, "Bob"},
  {3, "Charlie"},
};

このコンテナをコピーするには、コピー コンストラクターを使用できます:

std::vector<Student> students_copy(students);

または割り当て操作 シンボル:

std::vector<Student> students_copy;
students_copy = students;

これで、students_copy には学生と同じ学生情報が含まれます。

以上がC++ STL コンテナをコピーするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。