std::swap(std::multimap)(3)

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

std::swap(std::multimap)(3) πŸ’…

Okay so this is the page for std::swap(std::multimap) from the C++ Standard Libary manual β€” yes, that's the manual name, and we're folding it in up here like a little name tag instead of copying the whole header line. It's giving standard-library main character energy. 🫢

🌸 NAME 🌸

std::swap(std::multimap) - std::swap(std::multimap)

✨ Synopsis ✨

Defined in header <map>.

template< class Key, class T, class Compare, class Alloc >

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

           std::multimap<Key, T, Compare, Alloc>& rhs );
template< class Key, class T, class Compare, class Alloc >

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

               noexcept(/* see below */);

So there are two eras: the until C++17 version, and the since C++17 version that brought the noexcept(/* see below */) glow-up. πŸ’–

This specializes the std::swap algorithm for std::multimap. It swaps the contents of lhs and rhs. Under the hood it calls lhs.swap(rhs). Slay.

πŸŽ€ Parameters πŸŽ€

  • lhs, rhs β€” containers whose contents to swap.

πŸ¦‹ Return value πŸ¦‹

  • (none) β€” literally no return value, bestie.

🌈 Complexity 🌈

Constant. That's the whole vibe. Periodt.

πŸ”₯ Exceptions πŸ”₯

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

🧚 Example 🧚

// Run this code

#include <algorithm>
#include <iostream>
#include <map>

int main()
{
    std::multimap<int, char> alice{{1, 'a'}, {2, 'b'}, {3, 'c'}};
    std::multimap<int, char> bob{{7, 'Z'}, {8, 'Y'}, {9, 'X'}, {10, 'W'}};

    auto print = [](std::pair<const int, char>& n)
    {
        std::cout << ' ' << n.first << ':' << n.second;
    };

    // 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:a 2:b 3:c
Bob  : 7:Z 8:Y 9:X 10:W
-- SWAP
Alice: 7:Z 8:Y 9:X 10:W
Bob  : 1:a 2:b 3:c

πŸ’œ See also πŸ’œ

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

πŸ‘‘ Category: πŸ‘‘

  • * conditionally noexcept

And that's the whole page, bestie. Cute little sign-off: source is http://cppreference.com, version/date is 2024.06.10, and the page is std::swap(std::multimap)(3). πŸ’–βœ¨

πŸ“¦ where this page comes from