stream 转map
时间: 2023-09-14 12:04:37 浏览: 76
在C++中,你可以使用流(stream)对象和关联容器(如`std::map`)来实现stream到map的转换。下面是一个示例代码:
```cpp
#include <iostream>
#include <sstream>
#include <map>
int main() {
std::map<std::string, std::string> myMap;
// 创建一个stringstream对象,并将需要转换的字符串写入其中
std::stringstream ss("key1=value1\nkey2=value2\nkey3=value3");
std::string line;
while (std::getline(ss, line)) {
// 在每行中查找键值对,并将其插入到map中
size_t delimiterPos = line.find('=');
if (delimiterPos != std::string::npos) {
std::string key = line.substr(0, delimiterPos);
std::string value = line.substr(delimiterPos + 1);
myMap[key = value;
}
}
// 输出转换后的map内容
for (const auto& pair : myMap) {
std::cout << pair.first << " => " << pair.second << std::endl;
}
return 0;
}
```
在这个示例中,我们使用`std::stringstream`来模拟输入流,其中包含多行以"key=value"格式的字符串。程序会逐行读取字符串并解析出键值对,然后将其插入到`std::map`容器中。最后,我们遍历map并打印出所有的键值对。
请注意,这只是一个基本的示例,你可以根据自己的需求进行扩展和修改。希望能对你有所帮助!如果有任何疑问,请随时提问。
阅读全文