📅  最后修改于: 2023-12-03 15:13:56.466000             🧑  作者: Mango
map
是在C++ STL中实现的关联式容器。map::at()
方法是其中的一个成员函数,用于返回给定键的关联值。
mapped_type& at(const key_type& key);
const mapped_type& at(const key_type& key) const;
初始版本需要 C++11 及更高版本的支持。
key
:要搜索的元素的键。一个指向与给定键相关联的键/值对的引用。如果给定键不存在,则抛出 std::out_of_range
异常。
#include <iostream>
#include <map>
#include <string>
int main()
{
std::map<int, std::string> myMap = { {1, "one"}, {2, "two"}, {3, "three"} };
std::cout << "myMap[1]: " << myMap[1] << std::endl; // 输出:"myMap[1]: one"
std::cout << "myMap.at(2): " << myMap.at(2) << std::endl; // 输出:"myMap.at(2): two"
std::cout << "myMap[4]: " << myMap[4] << std::endl; // 输出:"myMap[4]: "
try
{
std::cout << "myMap.at(5): " << myMap.at(5) << std::endl;
}
catch (const std::out_of_range &e)
{
std::cerr << "Out of Range error: " << e.what() << std::endl;
}
return 0;
}
在这个例子中,当 myMap.at(5)
被调用时,它会抛出一个 std::out_of_range
异常。
通常,at()
函数用于访问 map
中指定键的值。如果给定键不存在则会抛出异常,因此它可以用于调试和错误处理。和 []
运算符不同,仅使用 at()
不会新建一个元素,如果查询的键不存在则会抛出异常而不是创建新的空值。
map::at()
函数的用途主要是获取指定键在 map
中关联的值,其中异常处理是需要注意的问题。在某些场合下,通过 at()
函数可以更好地调试和查找 bug。