std::list<std::map<std::string, std::string>> 按照序号直接取值
时间: 2023-06-18 18:05:45 浏览: 85
C++11 并发指南之std::thread 详解
可以使用迭代器进行访问。假设你想要访问第2个元素的第3个键值对,可以使用以下代码:
```cpp
#include <iostream>
#include <list>
#include <map>
#include <string>
int main() {
std::list<std::map<std::string, std::string>> my_list = {
{{"key1", "value1"}, {"key2", "value2"}},
{{"key1", "value3"}, {"key2", "value4"}},
{{"key1", "value5"}, {"key2", "value6"}}
};
auto it = std::next(my_list.begin(), 1); // 获取第2个元素
std::cout << it->at("key2") << std::endl; // 输出第2个元素的第1个键值对的值
it->at("key3") = "value7"; // 修改第2个元素的第3个键值对的值
std::cout << it->at("key3") << std::endl; // 输出修改后的值
return 0;
}
```
输出结果为:
```
value4
value7
```
其中,`std::next(my_list.begin(), 1)` 的作用是获取第2个元素的迭代器。`it->at("key2")` 可以获取第2个元素的第1个键值对的值,`it->at("key3") = "value7"` 可以修改第2个元素的第3个键值对的值,`it->at("key3")` 可以获取修改后的值。
阅读全文