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

另見