映射是关联容器,以映射方式存储元素。每个元素都有一个键值和一个映射值。任何两个映射值都不能具有相同的键值。
map::at()
at()函数用于引用映射到键值的元素,该键值作为函数的参数给出。例如,如果我们有一个字符串“hi”映射到整数1,则将整数1作为at()函数的参数传递将返回字符串“hi”。
at()函数与运算符有何不同[]
at()函数检查容器的范围,并在尝试访问不在该范围内的元素时引发异常,而operator []不检查容器的范围,并且在不属于该范围的元素时显示未定义的行为访问。
用法:
mapname.at(key) 参数: Key value mapped to the element to be fetched. 返回: Direct reference to the element at the given key value.
例子:
Input : map mymap; mymap['a'] = 1; mymap.at('a'); Output: 1 Input : map mymap; mymap["abcd"] = 7; mymap.at("abcd"); Output: 7
错误和异常
1.如果该键不存在于映射中,则抛出out_of_range。 2.否则,它具有强大的无异常抛出保证。
// CPP program to illustrate
// Implementation of at() function
#include <iostream>
#include <map>
#include <string>
using namespace std;
int main()
{
// map declaration
map<string, int> mymap;
// mapping strings to integers
mymap["hi"] = 1;
mymap["welcome"] = 2;
mymap["thanks"] = 3;
mymap["bye"] = 4;
// printing the integer mapped
// by string "thanks"
cout << mymap.at("thanks");
return 0;
}
输出:
3
时间复杂度:O(登录)
at()函数与运算符有何不同[]
at()函数检查容器的范围,并在尝试访问不在该范围内的元素时引发异常,而operator []不检查容器的范围,并且在不属于该范围的元素时显示未定义的行为访问。
相关用法
注:本文由纯净天空筛选整理自AyushSaxena大神的英文原创作品 map::at() in C++ STL。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。