public member function
<unordered_map>

std::unordered_map::at

mapped_type& at ( const key_type& k );const mapped_type& at ( const key_type& k ) const;
访问元素
返回一个对 kunordered_map 中元素的映射值的引用。

如果 k 与容器中任何元素的键不匹配,该函数将抛出 out_of_range 异常。

参数

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

返回值

对具有等效键值 k 的元素的映射值的引用。

成员类型mapped_type是容器中映射值类型,在 unordered_map 中定义为其第二个模板参数的别名(T).

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// unordered_map::at
#include <iostream>
#include <string>
#include <unordered_map>

int main ()
{
  std::unordered_map<std::string,int> mymap = {
                { "Mars", 3000},
                { "Saturn", 60000},
                { "Jupiter", 70000 } };

  mymap.at("Mars") = 3396;
  mymap.at("Saturn") += 272;
  mymap.at("Jupiter") = mymap.at("Saturn") + 9638;

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

  return 0;
}

可能的输出
Saturn: 60272
Mars: 3396
Jupiter: 69910


复杂度

平均情况:常量。
最坏情况:与 容器大小 成线性关系。

迭代器有效性

没有变化。

另见