Share via


swap 関数

2 つの concurrent_vector オブジェクトの要素を交換します。

template<
   typename _Ty,
   class _Ax
>
inline void swap(
   concurrent_vector<_Ty,
   _Ax> &_A,
   concurrent_vector<_Ty,
   _Ax> &_B
);

パラメーター

  • _Ty
    同時実行ベクターに格納されている要素のデータ型。

  • _Ax
    同時実行ベクターのアロケーターの型。

  • _A
    同時実行ベクター _B と要素を交換する同時実行ベクター。

  • _B
    交換する要素を提供する同時実行ベクター (同時実行ベクター _A と要素を交換する同時実行ベクター)。

解説

テンプレート関数は、concurrent_vector コンテナー クラスに特化されたアルゴリズムで、メンバー関数 _A.concurrent_vector::swap(_B) を実行します。 これらは、コンパイラによる関数テンプレートの部分的な順序付けのインスタンスです。 テンプレート関数がオーバーロードされた場合にテンプレートと関数呼び出しの一致が一意でない場合、コンパイラは、テンプレート関数の最も特化されたバージョンを選択します。 アルゴリズム クラスのテンプレート関数の一般的なバージョンである template <class T> void swap(T&, T&) は、代入によって動作し、処理に時間がかかります。 各コンテナー内の特化バージョンでは、コンテナー クラスの内部処理形式を操作することができるため、より高速な処理を実現できます。

このメソッドは同時実行セーフではありません。 このメソッドを呼び出すときは、他のスレッドがどちらの同時実行ベクターに対しても操作を行っていないことを確認する必要があります。

必要条件

ヘッダー: concurrent_vector.h

名前空間: Concurrency

参照

参照

Concurrency 名前空間

概念

並列コンテナーと並列オブジェクト

その他の技術情報

concurrent_vector クラス