在C++ STL中使用unordered_map swap

在C++ STL中使用unordered_map swap

std::unordered_map ::swap()是C++ STL中的内置函数,用于将一个容器的元素与另一个容器的元素交换。在调用此函数后,调用方unordered_map的元素将是被调用的unordered_map的元素,而被调用的unordered_map的元素将是调用方unordered_map的元素。

在内部,只有引用类型的unordered_map会发生交换。

语法

unordered_map.swap(unordered_map& ump)

返回类型:该函数的返回类型为void。

参数:另一个具有相同类型元素的unordered_map。

复杂度:其复杂度是常数。

示例1

// C++代码示例为方法服务
// unordered_map swap
#include< bits / stdc++.h>

使用命名空间std;

int main()
{
unordered_map<int,int> sample1, sample2;

//地图初始化
sample1 = {{2,2},{3,4},{4,6},{5,8}};
sample2 = {{10,11},{12,13},{14,15},{26,17}};

//在调用swap前打印详细信息

cout<<"调用swap之前的地图元素\n";
cout<<"第一张地图的元素是:\n";
for(auto& x:sample1)
    cout<<x.first<<":"<<x.second<<endl;

cout<<"第二张地图的元素是:\n";
for(auto& x:sample2)
    cout<<x.first<<":"<<x.second<<endl;

//交换
sample1.swap(sample2);

cout<<"调用swap之后的地图元素\n";
cout<<"第一张地图的元素是:\n";
for(auto& x:sample1)
    cout<<x.first<<":"<<x.second<<endl;

cout<<"第二张地图的元素是:\n";
for(auto& x:sample2)
    cout<<x.first<<":"<<x.second<<endl;
return 0;
}
调用swap之前的地图元素 
第一张地图的元素是: 
5:8
4:6
3:4
2:2
第二张地图的元素是: 
14:15
26:17
12:13
10:11
调用swap之后的地图元素 
第一张地图的元素是: 
14:15
26:17
12:13
10:11
第二张地图的元素是: 
5:8
4:6
3:4
2:2

示例2

// C++代码示例为方法服务
// unordered_map swap
#include< bits / stdc++.h>

使用命名空间std;

int main()
{
unordered_map<char,int> sample1, sample2;

//地图初始化
sample1 = {{'a',2},{'b',4},{'c',6},{'d',8}};
sample2 = {{'e',11},{'f',13},{'h',15}};

//在调用swap前打印详细信息

cout<<"调用swap之前的地图元素\n";
cout<<"第一张地图的元素是:\n";
for(auto& x:sample1)
    cout<<x.first<<":"<<x.second<<endl;

cout<<"第二张地图的元素是:\n";
for(auto& x:sample2)
    cout<<x.first<<":"<<x.second<<endl;

//交换
sample1.swap(sample2);

cout<<"调用swap之后的地图元素\n";
cout<<"第一张地图的元素是:\n";
for(auto& x:sample1)
    cout<<x.first<<":"<<x.second<<endl;

cout<<"第二张地图的元素是:\n";
for(auto& x:sample2)
    cout<<x.first<<":"<<x.second<<endl;
return 0;
}
交换前的maps元素
第一个map的元素为:
d : 8
c : 6
b : 4
a : 2
第二个map的元素为:
h : 15
f : 13
e : 11
交换后的maps元素
第一个map的元素为:
h : 15
f : 13
e : 11
第二个map的元素为:
d : 8
c : 6
b : 4
a : 2

注意:caller和called unordered_map应该包含相同类型的元素,否则将会得到编译时错误。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

C++ 教程