Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::swap(std::pair)

      From cppreference.com
      <cpp‎ |utility‎ |pair
       
       
      Utilities library
       
       
      Defined in header<utility>
      (1)
      template<class T1,class T2>

      void swap(std::pair<T1,T2>& x,std::pair<T1,T2>& y)

         noexcept(/* see below */);
      (since C++11)
      (until C++20)
      template<class T1,class T2>

      constexprvoid swap(std::pair<T1,T2>& x,std::pair<T1,T2>& y)

         noexcept(/* see below */);
      (since C++20)
      template<class T1,class T2>

      constexprvoid swap(conststd::pair<T1,T2>& x,conststd::pair<T1,T2>& y)

         noexcept(/* see below */);
      (2)(since C++23)

      Swaps the contents ofx andy. Equivalent tox.swap(y).

      1) This overload participates in overload resolution only ifstd::is_swappable_v<first_type>&&std::is_swappable_v<second_type> istrue.
      2) This overload participates in overload resolution only ifstd::is_swappable_v<const first_type>&&std::is_swappable_v<const second_type> istrue.
      (since C++17)

      Contents

      [edit]Parameters

      x, y - pairs whose contents to swap

      [edit]Return value

      (none)

      [edit]Exceptions

      noexcept specification:  
      noexcept(noexcept(x.swap(y)))

      [edit]Example

      Run this code
      #include <iostream>#include <utility> int main(){auto p1=std::make_pair(10,3.14);auto p2=std::pair(12,1.23);// CTAD, since C++17 auto print_p1_p2=[&](auto msg){std::cout<< msg<<"p1 = {"<< std::get<0>(p1)<<", "<< std::get<1>(p1)<<"}, "<<"p2 = {"<< std::get<0>(p2)<<", "<< std::get<1>(p2)<<"}\n";};     print_p1_p2("Before p1.swap(p2): ");    p1.swap(p2);    print_p1_p2("After  p1.swap(p2): ");std::swap(p1, p2);    print_p1_p2("After swap(p1, p2): ");}

      Output:

      Before p1.swap(p2): p1 = {10, 3.14}, p2 = {12, 1.23}After  p1.swap(p2): p1 = {12, 1.23}, p2 = {10, 3.14}After swap(p1, p2): p1 = {10, 3.14}, p2 = {12, 1.23}

      [edit]See also

      swaps the values of two objects
      (function template)[edit]
      specializes thestd::swap algorithm
      (function template)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/utility/pair/swap2&oldid=146140"

      [8]ページ先頭

      ©2009-2025 Movatter.jp