list<map> 怎么转换为list<对象>
时间: 2023-08-12 17:07:48 浏览: 172
要将一个 `list<map>` 转换为 `list<对象>`,你需要先定义一个对应的对象类并实现该类的构造函数,然后遍历 `list<map>` 中的每个 map,将每个 map 转换为一个对象并添加到新的 `list<对象>` 中。
举例来说,假设你有一个 `list<map>`,其中每个 map 都表示一个人,包含 `name` 和 `age` 两个字段,你想将其转换为一个 `list<Person>`,可以按照以下步骤进行操作:
1. 定义 `Person` 类,例如:
```c++
class Person {
public:
string name;
int age;
Person(string name, int age) {
this->name = name;
this->age = age;
}
};
```
2. 遍历 `list<map>`,将每个 map 转换为一个 `Person` 对象并添加到新的 `list<Person>` 中,例如:
```c++
list<map<string, string>> people = {{"name": "Alice", "age": "20"}, {"name": "Bob", "age": "30"}};
list<Person> persons;
for (auto& p : people) {
string name = p["name"];
int age = stoi(p["age"]);
Person person(name, age);
persons.push_back(person);
}
```
注意,这里使用了 `stoi()` 函数将字符串类型的年龄转换为整型。如果 `list<map>` 中的每个 map 包含的字段不同,那么你需要根据实际情况进行调整。
阅读全文