📅  最后修改于: 2023-12-03 14:59:51.055000             🧑  作者: Mango
在C++中,unordered_multimap
是一个关联容器,它将键值映射到值。它是一个哈希表,其中每个元素都是一个键/值对。 unordered_multimap
允许具有相同键的多个元素存在,这些元素被存储在桶(bucket)中。该容器提供了一组方法来方便地在哈希表中插入、搜索和删除元素。
unordered_multimap
的运算符=
用于将一个unordered_multimap
对象赋值给另一个对象。语法如下:
unordered_multimap& operator=(const unordered_multimap& umap);
这个运算符使用一个unordered_multimap
对象(即umap)来初始化另一个unordered_multimap
对象(即*this)。它返回一个指向该对象的引用。
下面是一个简单的例子,使用=
运算符将一个unordered_multimap
对象赋值给另一个对象:
#include <iostream>
#include <unordered_map>
#include <string>
int main()
{
std::unordered_multimap<std::string, int> umap1 = {{"apple", 1}, {"orange", 2}, {"banana", 3}};
std::unordered_multimap<std::string, int> umap2;
// 使用运算符=将umap1赋值给umap2
umap2 = umap1;
// 显示umap2中的所有元素
for(auto itr = umap2.begin(); itr != umap2.end(); itr++)
{
std::cout << itr->first << ": " << itr->second << std::endl;
}
return 0;
}
输出:
apple: 1
banana: 3
orange: 2
在上面的代码中,我们首先创建了一个名为umap1的unordered_multimap
对象,并向其添加了三个键/值对。然后,我们创建了一个空的名为umap2的unordered_multimap
对象,并使用运算符=
将umap1赋值给umap2。接着,我们使用一个for
循环来遍历umap2中的所有元素,并显示它们的键和值。
需要注意的是,=
运算符只是将一个unordered_multimap
对象的所有元素复制到另一个对象中。这意味着复制完成后,两个对象将指向不同的内存地址。如果您想要共享数据,请使用引用或指针来操作同一unordered_multimap
对象。