std::map 访问数据
时间: 2023-11-22 08:44:25 浏览: 128
好的,关于 std::map 访问数据,你可以使用下标操作符 [] 或者成员函数 at() 来访问元素。使用 [] 操作符时,如果 key 不存在,则会自动插入一个默认值;而使用 at() 成员函数时,如果 key 不存在,则会抛出 std::out_of_range 异常。
下面是一个使用 [] 操作符访问 std::map 的例子:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap;
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["cherry"] = 3;
std::cout << "apple: " << myMap["apple"] << std::endl;
std::cout << "banana: " << myMap["banana"] << std::endl;
std::cout << "cherry: " << myMap["cherry"] << std::endl;
std::cout << "orange: " << myMap["orange"] << std::endl; // 自动插入默认值 0
return 0;
}
```
输出结果为:
```
apple: 1
banana: 2
cherry: 3
orange: 0
```
下面是一个使用 at() 成员函数访问 std::map 的例子:
```cpp
#include <iostream>
#include <map>
int main() {
std::map<std::string, int> myMap;
myMap["apple"] = 1;
myMap["banana"] = 2;
myMap["cherry"] = 3;
std::cout << "apple: " << myMap.at("apple") << std::endl;
std::cout << "banana: " << myMap.at("banana") << std::endl;
std::cout << "cherry: " << myMap.at("cherry") << std::endl;
std::cout << "orange: " << myMap.at("orange") << std::endl; // 抛出 std::out_of_range 异常
return 0;
}
```
输出结果为:
```
apple: 1
banana: 2
cherry: 3
terminate called after throwing an instance of 'std::out_of_range'
what(): map::at
Aborted (core dumped)
```
阅读全文