C++ 标准库 - <map>

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:插入且不覆盖已有键。