Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::swap(std::stack)

      From cppreference.com
      <cpp‎ |container‎ |stack

      [edit template]
       
       
       
       
      Defined in header<stack>
      template<class T,class Container>

      void swap(std::stack<T, Container>& lhs,

                 std::stack<T, Container>& rhs);
      (since C++11)
      (until C++17)
      template<class T,class Container>

      void swap(std::stack<T, Container>& lhs,
                 std::stack<T, Container>& rhs)

         noexcept(/* see below */);
      (since C++17)
      (constexpr since C++26)
      Specializes thestd::swap algorithm forstd::stack. Swaps the contents oflhs andrhs. Callslhs.swap(rhs).

      This overload participates in overload resolution only ifstd::is_swappable_v<Container> istrue.

      (since C++17)

      Contents

      [edit]Parameters

      lhs, rhs - containers whose contents to swap

      [edit]Complexity

      Same as swapping the underlying containers.

      Exceptions

      noexcept specification:  
      noexcept(noexcept(lhs.swap(rhs)))
      (since C++17)

      Notes

      Although the overloads ofstd::swap for container adaptors are introduced in C++11, container adaptors can already be swapped bystd::swap in C++98. Such calls tostd::swap usually have linear time complexity, but better complexity may be provided.

      [edit]Example

      Run this code
      #include <algorithm>#include <iostream>#include <stack> int main(){std::stack<int> alice;std::stack<int> bob; auto print=[](constauto& title,constauto& 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("Bobby:", bob); std::cout<<"-- SWAP\n";std::swap(alice, bob); // Print state after swap    print("Alice:", alice);    print("Bobby:", bob);}

      Output:

      Alice: size=3 top=3Bobby: size=4 top=10-- SWAPAlice: size=4 top=10Bobby: size=3 top=3

      [edit]See also

      (C++11)
      swaps the contents
      (public member function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/container/stack/swap2&oldid=135381"

      [8]ページ先頭

      ©2009-2025 Movatter.jp