当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ map::at()用法及代码示例


映射是关联容器,以映射方式存储元素。每个元素都有一个键值和一个映射值。任何两个映射值都不能具有相同的键值。

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