table of contents
        
      
      
    | std::swap(std::array)(3) | C++ Standard Libary | std::swap(std::array)(3) | 
NAME¶
std::swap(std::array) - std::swap(std::array)
Synopsis¶
 Defined in header <array>
  
   template< class T, std::size_t N >
  
   (since C++11)
  
   void swap( std::array<T,N>& lhs, (until C++17)
  
   std::array<T,N>& rhs );
  
   template< class T, std::size_t N >
  
   (since C++17)
  
   void swap( std::array<T,N>& lhs, (until C++20)
  
   std::array<T,N>& rhs ) noexcept(/* see below */);
  
   template< class T, std::size_t N >
  
   constexpr void swap( std::array<T,N>& lhs, (since C++20)
  
   std::array<T,N>& rhs ) noexcept(/* see below */);
  
   Specializes the std::swap algorithm for std::array. Swaps the contents of lhs
    and
  
   rhs. Calls lhs.swap(rhs).
  
   This overload participates in overload resolution only if N == 0 or (since
    C++17)
  
   std::is_swappable_v<T> is true.
Parameters¶
lhs, rhs - containers whose contents to swap
Return value¶
(none)
Complexity¶
Linear in size of the container.
Exceptions¶
 noexcept specification: (since C++17)
  
   noexcept(noexcept(lhs.swap(rhs)))
Notes¶
 Although the overloads of std::swap for container adaptors are
    introduced in C++11,
  
   container adaptors can already be swapped by std::swap in C++98. Such calls
    to
  
   std::swap usually have linear time complexity, but better complexity may be
  
   provided.
Example¶
// Run this code
  
   #include <algorithm>
  
   #include <iostream>
  
   #include <array>
  
   int main()
  
   {
  
   std::array<int, 3> alice{1, 2, 3};
  
   std::array<int, 3> bob{7, 8, 9};
  
   auto print = [](const int& n) { std::cout << ' ' << n; };
  
   // Print state before swap
  
   std::cout << "alice:";
  
   std::for_each(alice.begin(), alice.end(), print);
  
   std::cout << "\n" "bob :";
  
   std::for_each(bob.begin(), bob.end(), print);
  
   std::cout << '\n';
  
   std::cout << "-- SWAP\n";
  
   std::swap(alice, bob);
  
   // Print state after swap
  
   std::cout << "alice:";
  
   std::for_each(alice.begin(), alice.end(), print);
  
   std::cout << "\n" "bob :";
  
   std::for_each(bob.begin(), bob.end(), print);
  
   std::cout << '\n';
  
   }
Output:¶
 alice: 1 2 3
  
   bob : 7 8 9
  
   -- SWAP
  
   alice: 7 8 9
  
   bob : 1 2 3
See also¶
 swap swaps the contents
  
   (C++11) (public member function)
| 2022.07.31 | http://cppreference.com |