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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。