std::map<uint16_t, std::string> park_info;怎么访问它的值
时间: 2024-09-12 18:14:55 浏览: 40
C++11 std::shared_ptr总结与使用示例代码详解
`std::map` 是 C++ 中的一个关联容器,它存储的是一系列的键值对。键值对的键是唯一的,用于快速检索对应的值。在这个例子中,`std::map<uint16_t, std::string>` 表示每个键是一个 `uint16_t` 类型的无符号16位整数,而每个值是一个 `std::string` 类型的字符串。
要访问 `std::map` 中的值,你可以使用几种不同的方式:
1. 使用下标操作符 `[]`:
```cpp
std::string value = park_info[123]; // 假设我们要访问键为123的值
```
如果键不存在,`[]` 操作符会自动创建一个新的键值对,并将值初始化为其类型的默认值。在 `std::string` 的情况下,这意味着值将是一个空字符串。如果你想避免创建新的键值对,可以使用 `find` 方法。
2. 使用 `find` 方法:
```cpp
auto it = park_info.find(123); // 查找键为123的元素
if (it != park_info.end()) {
std::string value = it->second; // 访问找到的键对应的值
} else {
// 键123不存在的处理逻辑
}
```
`find` 方法返回一个迭代器,指向找到的元素。如果键不存在,返回的迭代器会等于 `end()` 迭代器。
3. 使用 `at` 方法:
```cpp
std::string value = park_info.at(123); // 访问键为123的值
```
`at` 方法提供了一种通过下标访问元素的方式,但是它会进行键的有效性检查。如果键不存在,`at` 方法会抛出一个 `std::out_of_range` 异常。
阅读全文