次の方法で共有


<map> 関数

swap (map)

2 つの map の要素を交換します。

template <class key, class T, class _Pr, class _Alloc>
void swap(
    map<Key, Traits, Compare, Alloctor>& left,
    map<Key, Traits, Compare, Alloctor>& right);

パラメーター

right
交換する要素を提供する map (map left と要素を交換する map)。

left
要素が map right の要素と交換される map。

解説

テンプレート関数は、コンテナー クラス map に特化したアルゴリズムであり、メンバー関数 left.swap( right) を実行します。 これは、コンパイラによる関数テンプレートの部分的な順序付けのインスタンスです。 テンプレートと関数呼び出しの照合が一意にならないようにテンプレート関数がオーバーロードされた場合、コンパイラは、最も特化したバージョンのテンプレート関数を選択します。 テンプレート関数の一般的なバージョンである template<class T>void swap( T&, T&) は、割り当てによって動作し、処理が遅くなります。 各コンテナー内の特化バージョンのほうが、コンテナー クラスの内部表現で使用できるため大幅に高速になります。

swap のテンプレート バージョンの使用例については、メンバー関数 map::swap のコード例をご覧ください。

swap (multimap)

2 つの multimap の要素を交換します。

template <class key, class T, class _Pr, class _Alloc>
void swap(
    multimap<Key, Traits, Compare, Alloctor>& left,
    multimap<Key, Traits, Compare, Alloctor>& right);

パラメーター

right
交換する要素を提供する multimap (multimap left と要素を交換する multimap)。

left
要素が multimap right の要素と交換される multimap。

解説

テンプレート関数は、コンテナー クラス map に特化したアルゴリズムであり、メンバー関数 left.swap (right) を実行します。 これは、コンパイラによる関数テンプレートの部分的な順序付けのインスタンスです。 テンプレートと関数呼び出しの照合が一意にならないようにテンプレート関数がオーバーロードされた場合、コンパイラは、最も特化したバージョンのテンプレート関数を選択します。 テンプレート関数の一般的なバージョンである template<class T>void swap( T&, T&) は、割り当てによって動作し、処理が遅くなります。 各コンテナー内の特化バージョンのほうが、コンテナー クラスの内部表現で使用できるため大幅に高速になります。

swap のテンプレート バージョンの使用例については、メンバー関数 multimap::swap のコード例をご覧ください。