首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Post-Initialize stringstream inside map?

Post-Initialize stringstream inside map?
EN

Stack Overflow用户
提问于 2010-07-11 23:07:57
回答 2查看 1.9K关注 0票数 2

如何在map中对字符串流进行后期初始化?

有没有可能,或者我必须创建一个字符串流*

代码语言:javascript
复制
std::map<std::string, std::stringstream> mapTopics;

if(mapTopics.end() == mapTopics.find(Topic))
{
    mapTopics[Topic] = std::stringstream(""); // Post Initialize <---
}

std::map<std::string, std::stringstream>::iterator  mapTopicsIter = mapTopics.find(Topic);
mapTopicsIter->second << "    <say speaker=\"" << sSpeaker << "\">" << label << "</say>" << std::endl;
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-07-11 23:24:37

如何在映射中对字符串流进行后期初始化?

你不能。STL容器要求其数据元素是可复制的,而流是不可复制的。

为什么要在地图中包含流?你不能存储字符串吗?

如果你真的无能为力,你将不得不存储指向(很可能是动态分配的)字符串流的指针:

代码语言:javascript
复制
std::map<std::string, std::shared_ptr<std::stringstream> > stream_map;

这样做的好处是,您可以存储指向流基类的指针,以后还可以将其他流添加到映射中。

票数 4
EN

Stack Overflow用户

发布于 2012-08-18 04:02:55

我不确定这是不是你的意思,但是:

代码语言:javascript
复制
std::stringstream ss;
ss << "blablablabla";
ss.str("") /*Initialize*/
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3223497

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档