• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <set>

    std::set::swap

    void swap(set& st);
    void swap(set& x)
      noexcept(allocator_traits<Allocator>::is_always_equal::value
                && noexcept(swap(declval<Compare&>(),declval<Compare&>()))); // C++17
    

    概要

    コンテナ内のコンテンツを、同じ型の要素を保持する他の set オブジェクトである st 内のコンテンツと交換する。サイズは異なる場合もある。
    このメンバ関数の呼び出しの後、呼び出し前にコンテナ内にあった要素は st へ、st 内にあった要素は *this へ移る。全てのイテレータ、参照、ポインタは有効なまま残る。

    パラメータ

    • st
      *thisとコンテンツを交換する、同じ型の set コンテナ。

    計算量

    定数時間

    #include <iostream>
    #include <set>
    
    int main()
    {
      std::set<int> c1, c2;
    
      c1.insert(10);
      c1.insert(20);
      c1.insert(30);
    
      c2.insert(5);
      c2.insert(15);
    
      c1.swap(c2);
    
      std::set<int>::iterator i = c1.begin();
      while (i != c1.end()) {
        std::cout << *(i++) << ",";
      }
      std::cout << std::endl;
    }
    

    出力

    5,15,
    

    参照