C++ multimap::operator=() 函数



C++ 的std::multimap::operator=()函数用于将一个 multimap 的内容赋值给另一个 multimap,从而实现高效地复制键值对。当调用此函数时,它会将源 multimap 中的所有元素复制到目标 multimap,并保持排序顺序。

此函数有 3 个多态变体:使用复制版本、移动版本和初始化列表版本(您可以在下面找到所有变体的语法)。

此函数不会合并元素,它会用源 multimap 的内容替换目标 multimap 的内容。

语法

以下是 std::multimap::operator=() 函数的语法。

multimap& operator= (const multimap& x);
or	
multimap& operator= (multimap&& x);
or	
multimap& operator= (initializer_list<value_type> il);

参数

  • x - 指示另一个相同类型的 multimap 对象。
  • il - 指示一个 initializer_list 对象。

返回值

此函数返回 this 指针。

示例

让我们看下面的例子,我们将演示 operator=() 函数的使用。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a;
    a.insert({1, "TP"});
    a.insert({2, "TutorialsPoint"});
    std::multimap<int, std::string> b;
    b = a;
    for (const auto& pair : b) {
        std::cout << pair.first << ": " << pair.second << std::endl;
    }
    return 0;
}

输出

以上代码的输出如下:

1: TP
2: TutorialsPoint

示例

考虑下面的例子,我们将进行自赋值并观察输出。

#include <iostream>
#include <map>
int main()
{
    std::multimap<int, std::string> a = {{1, "Hi"}, {1, "Hello"}};
    a = a;
    for (const auto& pair : a) {
        std::cout << pair.first << " : " << pair.second << std::endl;
    }
    return 0;
}

输出

以下是以上代码的输出:

1 : Hi
1 : Hello

示例

在下面的例子中,我们将应用 operator=() 将内容赋值给空的 multimap。

#include <iostream>
#include <map>
int main() {
    std::multimap<int, std::string> a = {{3, "Cruze"}, {2, "Sail"}};
    std::multimap<int, std::string> b;
    b = a;
    for (const auto& pair : b) {
        std::cout << pair.first << " : " << pair.second << std::endl;
    }
    return 0;
}

输出

如果我们运行以上代码,它将生成以下输出:

2 : Sail
3 : Cruze
multimap.htm
广告