list通过steam转map
时间: 2024-06-05 20:04:48 浏览: 209
使用STL的list容器的成员函数`std::transform()`可以方便地将一个list转换为一个map。具体步骤如下:
1. 首先定义一个`std::map`对象,作为转换后的目标容器。
2. 然后利用`std::transform()`函数,将list中的每个元素转换为map中的一个键值对。
3. 在转换的过程中,需要提供一个转换函数,用于将list中的元素转换为map中的键值对。这个转换函数可以使用Lambda表达式来实现。
4. 最后,将转换后的map对象返回即可。
下面是示例代码:
```
#include <iostream>
#include <list>
#include <map>
#include <algorithm>
int main() {
std::list<std::pair<int, std::string>> myList = {{1, "one"}, {2, "two"}, {3, "three"}};
// 将list转换为map
std::map<int, std::string> myMap;
std::transform(myList.begin(), myList.end(), std::inserter(myMap, myMap.begin()),
[](const std::pair<int, std::string>& p) { return p; });
// 输出转换后的map
for (const auto& p : myMap) {
std::cout << p.first << ": " << p.second << std::endl;
}
return 0;
}
阅读全文