📅  最后修改于: 2023-12-03 15:29:50.259000             🧑  作者: Mango
at()
函数是 C++ STL 中的 map 类模板所提供的一个函数。它用于查找键值,返回与该键相关联的值。如果请求的键不存在,则该函数将引发 out_of_range
异常。
map
是一种关联式容器,其元素由键和值组成。每个键都只能出现一次,而且键是唯一的(如果已存在的话,插入一个包含相同键的元素将不起作用)。
以下是 at()
函数的语法:
mapped_type& at(const key_type& k);
const mapped_type& at(const key_type& k) const;
at()
函数的两个版本都接受一个参数 k
,该参数是用于搜索的键值。第一个版本返回一个可修改的引用,可以用于修改 map 中与该键相关联的值。第二个版本返回一个不可修改的常量引用,不能用于修改 map 中与该键相关联的值。
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> m;
// 添加键值对到 map
m["foo"] = 11;
m["bar"] = 42;
// 根据键查找相应的值
std::cout << m.at("foo") << std::endl;
std::cout << m.at("bar") << std::endl;
// 尝试查找一个不存在的键,将抛出异常
try {
std::cout << m.at("baz") << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << e.what() << std::endl;
}
return 0;
}
输出结果为:
11
42
std::out_of_range: map::at
at()
函数提供了一种安全的搜索 map 中键值的方法,如果请求的键不存在,函数会抛出异常。但是要注意,at()
函数只适用于有显式搜索需求的情况,如果只是简单地想查看 map 中是否存在某个键,可以使用 count()
函数来代替,它会返回这个键的出现次数。