【问题标题】:Best way to store stream data存储流数据的最佳方式
【发布时间】:2011-07-08 02:29:25
【问题描述】:

我正在制作一个游戏消息系统并使用 boost::serialize 将消息数据转换为流并发送它。这适用于即时传输消息,因为我可以发送对流的引用。

但是,在某些情况下,我也想将消息排队。我不确定存储数据的最佳方式是什么。

我试过std::queue<std::stringstream> 但这只是错误很多。

std::bitset 看起来很有希望,但我不确定。

或者这完全是疯子?

【问题讨论】:

  • std::vector 或 std::queue 有什么问题?
  • 执行 std::queue<:stringstream> 时出现大量错误
  • 将流用于进程中的消息传递并不是一个好主意。流的写入和读取是不必要的开销,可以通过引入消息类型和消息池来避免。
  • @Sasha 老实说,我就是这么想的,但是一本书推荐它,我把它作为练习。以前我在 void* 周围传递并施放它们,但感觉不对。

标签: c++ stream boost-serialization


【解决方案1】:

试试std::queue&lt;std::vector&lt;char&gt; &gt;。您之前尝试的字符串流不可复制,因此只需复制字节即可。您还可以使用字符串作为队列中的值类型,因为这可能是您从字符串流中得到的。

【讨论】:

    猜你喜欢
    • 2017-03-26
    • 2018-12-01
    • 2013-09-10
    • 2014-07-28
    • 2012-05-10
    • 2011-11-26
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多