std::unordered_map::operator=
From cppreference.com
< cpp | container | unordered map
unordered_map& operator=( const unordered_map& other );
|
(1) | (since C++11) |
unordered_map& operator=( unordered_map&& other );
|
(2) | (since C++11) |
Replaces the contents of the container.
1) Copy assignment operator. Replaces the contents with a copy of the contents of other
.
2) Move assignment operator. Replaces the contents with those of other
using move semantics (i.e. the data in other
is moved from other
into this container). other
is in valid, but unspecified state afterwards.
Contents |
[edit] Parameters
other | - | another container to be used as source |
[edit] Return value
*this
[edit] Complexity
1) Linear in the size of the container.
2) Constant.
[edit] Example
The following code uses to assign one std::unordered_map to another:
#include <unordered_map> #include <iostream> void display_sizes(const std::unordered_map<int, int> &nums1, const std::unordered_map<int, int> &nums2, const std::unordered_map<int, int> &nums3) { std::cout << "nums1: " << nums1.size() << " nums2: " << nums2.size() << " nums3: " << nums3.size() << '\n'; } int main() { std::unordered_map<int, int> nums1 {{3, 1}, {4, 1}, {5, 9}}; std::unordered_map<int, int> nums2; std::unordered_map<int, int> nums3; std::cout << "Initially:\n"; display_sizes(nums1, nums2, nums3); // copy assignment copies data from nums1 to nums2 nums2 = nums1; std::cout << "After assigment:\n"; display_sizes(nums1, nums2, nums3); // move assignment moves data from nums1 to nums3, // modifying both nums1 and nums3 nums3 = std::move(nums1); std::cout << "After move assigment:\n"; display_sizes(nums1, nums2, nums3); }
Output:
Initially: nums1: 4 nums2: 0 nums3: 0 After assigment: nums1: 4 nums2: 4 nums3: 0 After move assigment: nums1: 0 nums2: 4 nums3: 4
[edit] See also
constructs the unordered_map (public member function) |