GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM
  • C library:
  • <cassert> (assert.h)
  • <cctype> (ctype.h)
  • <cerrno> (errno.h)
  • <cfenv> (fenv.h)
  • <cfloat> (float.h)
  • <cinttypes> (inttypes.h)
  • <ciso646> (iso646.h)
  • <climits> (limits.h)
  • <clocale> (locale.h)

This view

  • Original page
  • New address

GeezerVison is showing cplusplus.com — std::unordered_map::swap

  • TUTORIALS
  • REFERENCE
  • ARTICLES
  • FORUM

C++

  • Tutorials
  • Reference
  • Articles
  • Forum

Reference

  • C library:

    • <cassert> (assert.h)
    • <cctype> (ctype.h)
    • <cerrno> (errno.h)
    • C++11
      <cfenv> (fenv.h)
    • <cfloat> (float.h)
    • C++11
      <cinttypes> (inttypes.h)
    • <ciso646> (iso646.h)
    • <climits> (limits.h)
    • <clocale> (locale.h)
    • <cmath> (math.h)
    • <csetjmp> (setjmp.h)
    • <csignal> (signal.h)
    • <cstdarg> (stdarg.h)
    • C++11
      <cstdbool> (stdbool.h)
    • <cstddef> (stddef.h)
    • C++11
      <cstdint> (stdint.h)
    • <cstdio> (stdio.h)
    • <cstdlib> (stdlib.h)
    • <cstring> (string.h)
    • C++11
      <ctgmath> (tgmath.h)
    • <ctime> (time.h)
    • C++11
      <cuchar> (uchar.h)
    • <cwchar> (wchar.h)
    • <cwctype> (wctype.h)
  • Containers:

    • C++11
      <array>
    • <deque>
    • C++11
      <forward_list>
    • <list>
    • <map>
    • <queue>
    • <set>
    • <stack>
    • C++11
      <unordered_map>
    • C++11
      <unordered_set>
    • <vector>
  • Input/Output:

    • <fstream>
    • <iomanip>
    • <ios>
    • <iosfwd>
    • <iostream>
    • <istream>
    • <ostream>
    • <sstream>
    • <streambuf>
  • Multi-threading:

    • C++11
      <atomic>
    • C++11
      <condition_variable>
    • C++11
      <future>
    • C++11
      <mutex>
    • C++11
      <thread>
  • Other:

    • <algorithm>
    • <bitset>
    • C++11
      <chrono>
    • C++11
      <codecvt>
    • <complex>
    • <exception>
    • <functional>
    • C++11
      <initializer_list>
    • <iterator>
    • <limits>
    • <locale>
    • <memory>
    • <new>
    • <numeric>
    • C++11
      <random>
    • C++11
      <ratio>
    • C++11
      <regex>
    • <stdexcept>
    • <string>
    • C++11
      <system_error>
    • C++11
      <tuple>
    • C++11
      <type_traits>
    • C++11
      <typeindex>
    • <typeinfo>
    • <utility>
    • <valarray>

<unordered_map>

  • C++11
    unordered_map
  • C++11
    unordered_multimap

unordered_map

  • C++11
    unordered_map::~unordered_map
  • C++11
    unordered_map::unordered_map
  • member functions

    • C++11
      unordered_map::at
    • C++11
      unordered_map::begin
    • C++11
      unordered_map::bucket
    • C++11
      unordered_map::bucket_count
    • C++11
      unordered_map::bucket_size
    • C++11
      unordered_map::cbegin
    • C++11
      unordered_map::cend
    • C++11
      unordered_map::clear
    • C++11
      unordered_map::count
    • C++11
      unordered_map::emplace
    • C++11
      unordered_map::emplace_hint
    • C++11
      unordered_map::empty
    • C++11
      unordered_map::end
    • C++11
      unordered_map::equal_range
    • C++11
      unordered_map::erase
    • C++11
      unordered_map::find
    • C++11
      unordered_map::get_allocator
    • C++11
      unordered_map::hash_function
    • C++11
      unordered_map::insert
    • C++11
      unordered_map::key_eq
    • C++11
      unordered_map::load_factor
    • C++11
      unordered_map::max_bucket_count
    • C++11
      unordered_map::max_load_factor
    • C++11
      unordered_map::max_size
    • C++11
      unordered_map::operator[]
    • C++11
      unordered_map::operator=
    • C++11
      unordered_map::rehash
    • C++11
      unordered_map::reserve
    • C++11
      unordered_map::size
    • C++11
      unordered_map::swap
  • non-member overloads

    • C++11
      operators (unordered_map)
    • C++11
      swap (unordered_map)
  • Reference
  • <unordered_map>
  • unordered_map
  • swap
public member function
<unordered_map>

std::unordered_map::swap

void swap ( unordered_map& ump );
Swap content
Exchanges the content of the container by the content of ump, which is another unordered_map object containing elements of the same type. Sizes may differ.

After the call to this member function, the elements in this container are those which were in ump before the call, and the elements of ump are those which were in this. Other objects kept internally by the containers (such as their hasher or key_equal objects) are also swapped.

This function exchanges internal pointers to data between the containers without actually performing any copies or moves on the individual elements, allowing for constant time execution no matter the sizes.

Notice that a global algorithm function exists with this same name, swap. This global function is overloaded for arguments of type unordered_map to have the same behavior and complexity as this member function.

Parameters

ump
Another unordered_map container object of the same type as this.

Return value

none

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// unordered_map::swap
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_map<std::string,std::string>
     first = {{"Star Wars","G. Lucas"},{"Alien","R. Scott"},{"Terminator","J. Cameron"}},
     second  = {{"Inception","C. Nolan"},{"Donnie Darko","R. Kelly"}};

  first.swap(second);

  std::cout << "first: ";
  for (auto& x: first) std::cout << x.first << " (" << x.second << "), ";
  std::cout << std::endl;

  std::cout << "second: ";
  for (auto& x: second) std::cout << x.first << " (" << x.second << "), ";
  std::cout << std::endl;

  return 0;
}

Possible output:
first: Inception (C. Nolan), Donnie Darko (R. Kelly),
second: Alien (R. Scott), Terminator (J. Cameron), Star Wars (G. Lucas),


Complexity

Constant.

Iterator validity

All iterators, pointers and references remain valid, but now are referring to elements in the other container, and iterate in it.

See also

swap (unordered_map)
Exchanges contents of two unordered_map containers (function template)
swap
Exchange values of two objects (function template)
swap_ranges
Exchange values of two ranges (function template)
Home page | Privacy policy
© cplusplus.com, 2000-2026 - All rights reserved - v3.3.4s
Spotted an error? contact us
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.