C++ Reference: Standard C++ Library reference: Containers: map: map: at

C++官网参考链接:https://cplusplus.com/reference/map/map/at/

公有成员函数
<map>
std::map::at
mapped_type& at (const key_type& k);
const mapped_type& at (const key_type& k) const;
访问元素
返回对键k标识的元素的映射值的引用。
如果k与容器中任何元素的键不匹配,则该函数抛出out_of_range异常。

形参 
k
访问其映射值的元素的键值。
成员类型key_type是容器中元素的键的类型,在map中定义为其第一个模板形参(Key)的别名。

返回值
对元素的映射值的引用,其键值等价于k。
如果map对象是const限定的,该函数返回对const mapped_type的引用。否则,它返回对mapped_type的引用。
成员类型mapped_type是容器中映射值的类型(参见map成员类型(map member types))。在map中,这是它的第二个模板参数(T)的别名。

用例
// map::at
#include <iostream>
#include <string>
#include <map>

int main ()
{
  std::map<std::string,int> mymap = {
                { "alpha", 0 },
                { "beta", 0 },
                { "gamma", 0 } };

  mymap.at("alpha") = 10;
  mymap.at("beta") = 20;
  mymap.at("gamma") = 30;

  for (auto& x: mymap) {
    std::cout << x.first << ": " << x.second << '\n';
  }

  return 0;
}
输出:

复杂度
size中的对数。

iterator的有效性
没有变化。

数据竞争
容器被访问(const和非const版本都不会修改容器)。
调用方可以修改被访问的映射值。同时访问或修改其他元素是安全的。

异常安全
强保证:如果抛出异常,则容器中不会有任何更改。
如果k不是map中某个元素的键,则抛出out_of_range。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值