◐ Shell
clean mode source ↗

std::unordered_map::operator= – cppreference.com

Aus cppreference.com

<tbody> </tbody>

unordered_map& operator=( const unordered_map& other );

(1) (seit C++11)

unordered_map& operator=( unordered_map&& other );

(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

Siehe auch