C++ std::map::at 按键返回映射值的引用。键不存在时抛 std::out_of_range,与 vector::at 同类。
原型
T& at(const key_type& k);
const T& at(const key_type& k) const;参数
k:键。
返回值
对应值的引用。
示例
#include <iostream>
#include <map>
#include <stdexcept>
#include <string>
int main() {
std::map<std::string, int> m{{"Ada", 95}};
std::cout << m.at("Ada") << "\n";
try {
std::cout << m.at("x") << "\n";
} catch (const std::out_of_range&) {
std::cout << "out_of_range\n";
}
return 0;
}输出:
95
out_of_range
注意事项
需要默认值而不抛异常时,用 find 或 C++17 的 try_emplace 等接口,不要依赖 [] 的插入行为。
下一页介绍insert:插入且不覆盖已有键。