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