table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::swap(std::stack)(3) | C++ Standard Libary | std::swap(std::stack)(3) | 
NAME¶
std::swap(std::stack) - std::swap(std::stack)
Synopsis¶
 Defined in header <stack>
  
   template< class T, class Container >
  
   (since C++11)
  
   void swap( std::stack<T, Container>& lhs, (until C++17)
  
   std::stack<T, Container>& rhs );
  
   template< class T, class Container >
  
   void swap( std::stack<T, Container>& lhs, (since C++17)
  
   std::stack<T, Container>& rhs )
  
   noexcept(/* see below */);
  
   Specializes the std::swap algorithm for std::stack. Swaps the contents of lhs
    and
  
   rhs. Calls lhs.swap(rhs).
  
   This overload participates in overload resolution only if (since
    C++17)
  
   std::is_swappable_v<Container> is true.
Parameters¶
lhs, rhs - containers whose contents to swap
Return value¶
(none)
Complexity¶
Same as swapping the underlying 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 <stack>
  
   int main()
  
   {
  
   std::stack<int> alice;
  
   std::stack<int> bob;
  
   auto print = [](const auto& title, const auto& cont)
  
   {
  
   std::cout << title << " size=" << cont.size();
  
   std::cout << " top=" << cont.top() << '\n';
  
   };
  
   for (int i = 1; i < 4; ++i)
  
   alice.push(i);
  
   for (int i = 7; i < 11; ++i)
  
   bob.push(i);
  
   // Print state before swap
  
   print("Alice:", alice);
  
   print("Bob :", bob);
  
   std::cout << "-- SWAP\n";
  
   std::swap(alice, bob);
  
   // Print state after swap
  
   print("Alice:", alice);
  
   print("Bob :", bob);
  
   }
Output:¶
 Alice: size=3 top=3
  
   Bob : size=4 top=10
  
   -- SWAP
  
   Alice: size=4 top=10
  
   Bob : size=3 top=3
See also¶
 swap swaps the contents
  
   (C++11) (public member function)
Category:¶
* conditionally noexcept
| 2024.06.10 | http://cppreference.com |