Map是STL中的容器,用于以键值对的形式存储元素。在内部,映射中的元素始终按其键排序。Map主要实现为二进制搜索树。
map::at()
at()函数用于将引用返回给与键k关联的元素。
用法:
map1.at(k) 参数: k is the Key value of the element whose associated value is accessed.
返回:它返回对键值等于k的元素的关联值的引用。
例子:
Input: map1 = {
{1, 'a'},
{2, 'b'},
{3, 'c'},
{4, 'd'}
}
map1.at(2);
Output:b
Input: map2 = {
{'w', 1},
{'x', 2},
{'y', 3}
}
map2.at('w');
Output:1
// CPP program to illustrate
// Implementation of swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Take any two maps
map<int, char> map1;
map<char, int> map2;
map1[1] = 'a';
map1[2] = 'b';
map1[3] = 'c';
map1[4] = 'd';
map2['w'] = 1;
map2['y'] = 2;
map2['z'] = 3;
// Print the associated element
cout << "Element at map1[2] = "
<< map1.at(2) << endl;
cout << "Element at map2['w'] = "
<< map2.at('w') << endl;
return 0;
}输出:
Element at map1[2] = b Element at map2['w'] = 1
map::swap()
swap()函数用于交换两个Map的内容,但是Map的类型必须相同,尽管大小可能会有所不同。句法:
map1.swap(map2)
OR
swap(map1, map2)
参数:
map1 is the first map object.
map2 is the second map object.
返回值:没有
例子:
Input:map1 = {
{1, 'a'},
{2, 'b'},
{3, 'c'},
{4, 'd'}
}
map2 = {
{5, 'w'},
{6, 'x'},
{7, 'y'}
}
swap(map1, map2)
Output:map1 = {
{5, 'w'},
{6, 'x'},
{7, 'y'}
}
map2 = {
{1, 'a'},
{2, 'b'},
{3, 'c'},
{4, 'd'}
}
// CPP program to illustrate
// Implementation of swap() function
#include <bits/stdc++.h>
using namespace std;
int main()
{
// Take any two maps
map<int, char> map1, map2;
map1[1] = 'a';
map1[2] = 'b';
map1[3] = 'c';
map1[4] = 'd';
map2[5] = 'w';
map2[6] = 'x';
map2[7] = 'y';
// Swap elements of queues
swap(map1, map2);
// Print the elements of maps
cout << "map1:\n"
<< "\tKEY\tELEMENT\n";
for (auto it = map1.begin();
it != map1.end(); it++)
cout << "\t" << it->first << "\t" << it->second << '\n';
cout << "map2:\n"
<< "\tKEY\tELEMENT\n";
for (auto it = map2.begin();
it != map2.end(); it++)
cout << "\t" << it->first << "\t" << it->second << '\n';
return 0;
}输出:
map1:
KEY ELEMENT
5 w
6 x
7 y
map2:
KEY ELEMENT
1 a
2 b
3 c
4 d
相关用法
注:本文由纯净天空筛选整理自AKASH GUPTA 6大神的英文原创作品 map::at() and map::swap() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
