std::swap(std::list)(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

okay so this is std::swap(std::list)(3) from the C++ Standard Libary manual, and we’re folding the manual name right here at the top instead of copying the header line β€” bestie, we’re already slaying the formatting πŸ’–

πŸ’– NAME πŸ’–

std::swap(std::list) β€” std::swap(std::list) (yes, the name is the name, iconic behavior)

✨ Synopsis ✨

Defined in header <list>:

          Defined in header <list>
          template< class T, class Alloc >

          void swap( std::list<T, Alloc>& lhs,       (until C++17)

                     std::list<T, Alloc>& rhs );
          template< class T, class Alloc >

          void swap( std::list<T, Alloc>& lhs,       (since C++17)
                     std::list<T, Alloc>& rhs )

                         noexcept(/* see below */);

This specializes the std::swap algorithm for std::list. It swaps the contents of lhs and rhs. It calls lhs.swap(rhs) β€” that’s the whole vibe, no cap.

🌸 Parameters 🌸

  • lhs, rhs β€” the containers whose contents you’re swapping 🫢

πŸŽ€ Return value πŸŽ€

(none) β€” literally nothing comes back, bestie.

πŸ¦‹ Complexity πŸ¦‹

Constant. Periodt.

πŸ’… Exceptions πŸ’…

noexcept specification: (since C++17)

noexcept(noexcept(lhs.swap(rhs)))

πŸ“ Example πŸ“

        // Run this code

        #include <algorithm>
        #include <iostream>
        #include <list>

        int main()
        {
            std::list<int> alice{1, 2, 3};
            std::list<int> bob{7, 8, 9, 10};

            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 10
        -- SWAP
        Alice: 7 8 9 10
        Bob  : 1 2 3

πŸ‘‘ See also πŸ‘‘

  • swap β€” swaps the contents (public member function)

⭐ Category ⭐

  • conditionally noexcept

kisses, bestie: source http://cppreference.com, version/date 2024.06.10, page std::swap(std::list)(3) πŸ’‹βœ¨

πŸ“¦ where this page comes from