C++ 中的 unordered_multimap operator=

C++ 中的 unordered_multimap operator=

unordered_multimap::operator= 是 C++ STL 中的内置函数,它执行三种类型的任务,下面将对其进行解释。

语法 (从不同容器中复制元素):

unordered_multimap_name1_ operator= (unordered_multimap_name2)

参数: 该函数不接受任何参数。右边的容器是要将其元素复制到左边容器中的容器。

返回值: 没有返回值。

下面的程序说明了以上函数:

// C++ program to illustrate the
// unordered_multimap::operator=
#include <bits/stdc++.h>
using namespace std;

int main()
{

    // declaration
    unordered_multimap<int, int> sample1, sample2;

    // inserts key and element
    // in sample1
    sample1.insert({ 10, 100 });
    sample1.insert({ 50, 500 });

    cout << "Key and Elements of Sample1 before copy are:";
    for (auto it = sample1.begin(); it != sample1.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }

    cout << "\nThe size of sample2 before copy: "
          << sample2.size();

    // operator= to copy
    sample2 = sample1;

    cout << "\nKey and Elements of Sample2 after copy are: ";
    for (auto it = sample2.begin(); it != sample2.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }

    return 0;
}

输出结果:

Key and Elements of Sample1 before copy are:{50, 500} {10, 100}
The size of sample2 before copy: 0
Key and Elements of Sample2 after copy are: {50, 500} {10, 100}

语法 (从不同容器中移动元素):

unordered_multimap_name1_ operator= (unordered_multimap_name2)

参数: 该函数不接受任何参数。右边的容器是要将其元素移动到左边容器中的容器。在使用 operator= 后,右容器中的元素将被销毁。

返回值: 没有返回值。

下面的程序说明了以上函数:

// C++程序介绍unordered_multimap::operator=
#include <bits/stdc++.h>
using namespace std;
 
// 合并两个列表的函数
unordered_multimap<char, char> merge(unordered_multimap<char, char> a,
                                     unordered_multimap<char, char> b)
{
    unordered_multimap<char, char> temp(a);
    temp.insert(b.begin(), b.end());
    return temp;
}
int main()
{
 
    // 声明
    unordered_multimap<char, char> sample1, sample2, sample3;
 
    // 在sample1中插入键和元素
    sample1.insert({ 'a', 'A' });
    sample1.insert({ 'g', 'G' });
 
    // 在sample2中插入键和元素
    sample2.insert({ 'b', 'B' });
    sample2.insert({ 'c', 'C' });
    sample2.insert({ 'd', 'D' });
 
    cout << "Sample1的键和元素是:";
    for (auto it = sample1.begin(); it != sample1.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }
 
    cout << "\nSample2的键和元素是:";
    for (auto it = sample2.begin(); it != sample2.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }
 
    // 合并并移动
    sample3 = merge(sample1, sample2);
    sample1 = sample3;
 
    cout << "\n\nSample1的键和元素是:";
    for (auto it = sample1.begin(); it != sample1.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }
 
    return 0;
}

输出:

Sample1的键和元素是:{g, G} {a, A} 
Sample2的键和元素是:{d, D} {b, B} {c, C} 

Sample1的键和元素是:{c, C} {b, B} {d, D} {a, A} {g, G}

语法 (用于从不同的 列表 中分配元素):

unordered_multimap_name1 operator= ( _intitializer_list il_ )

参数: 它不接受任何参数,右侧的列表将被分配给容器。

返回值: 它不返回任何值。

下面的程序说明了上述函数:

// C++程序介绍unordered_multimap::operator=
#include <bits/stdc++.h>
using namespace std;
 
int main()
{
 
    // 通过使用operator=进行声明
    unordered_multimap<int, int> sample1 = { { 1, 2 }, { 3, 4 }, { 5, 6 } };
 
    cout << "Sample1的键和元素是:";
    for (auto it = sample1.begin(); it != sample1.end(); it++) {
        cout << "{" << it->first << ", "<< it->second << "} ";
    }
 
    // 通过使用operator=进行声明
    unordered_multimap<char, char> sample2 = { { 'a', 'A' }, { 'b', 'B' }, { 'c', 'C' } };
 
    cout << "\n\nSample1的键和元素是:";
    for (auto it = sample2.begin(); it != sample2.end(); it++) {
        cout << "{" << it->first << ", " << it->second << "} ";
    }
 
    return 0;
}

输出:

Sample1的键和元素是:{5, 6} {3, 4} {1, 2} 
Sample2的键和元素是:{c, C} {b, B} {a, A}

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程