public member function
<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中定义为其第一个模板参数().

返回值

返回一个对键值为k的元素的映射值的引用。

如果map对象是const限定的,则该函数返回一个对const mapped_type的引用。否则,它返回一个对mapped_type.

成员类型mapped_type的引用。它是容器中映射值的类型(参见map 成员类型)。在map中,这是其第二个模板参数(T).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 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;
}

可能的输出
alpha: 10
beta: 20
gamma: 30


复杂度

size 的对数复杂度。

迭代器有效性

没有变化。

数据竞争

访问容器(const 和非 const 版本都不会修改容器)。
的别名。调用者可以修改所访问的映射值。同时访问或修改其他元素是安全的。

异常安全

强保证:如果抛出异常,容器没有发生变化。
如果k不是map中某个元素的键,则抛出out_of_range

另见