std::unordered_map::operator= – cppreference.com
Aus cppreference.com
<tbody> </tbody>
|
|
(1) | (seit C++11) |
|
|
(2) | (seit C++11) |
Ersetzt den Inhalt des Containers.
1) Copy-Zuweisungsoperator. Ersetzt den Inhalt mit einer Kopie des Inhalts other .
2) move-Zuweisungsoperator. Ersetzt den Inhalt mit denen unter Verwendung other bewegen Semantik (dh die Daten in other aus other in diesen Behälter bewegt wird). other ist gültig, aber nicht näher Zustand danach .
Parameter
| other | - | ein weiterer Container, die als Quelle verwendet werden |
Rückgabewert
*this
Komplexität
1) Linear in der Größe des Behälters .
2) Constant .
Beispiel
Der folgende Code verwendet um ein std::unordered_map einem anderen zuweisen:
#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