【问题标题】:boosts buffer into char* (no std::string)将缓冲区提升为 char*(无 std::string)
【发布时间】:2009-12-15 19:21:23
【问题描述】:

所以,这听起来可能是一个真正的新手问题......而且很可能是新手:)

我尝试使用 read_until 将我得到的 boost::asio::streambuf 中的信息转换为 char*。我发现了很多将其转换为 std::string 的示例,但我很生气,如果在应用程序中使用 bufer -> std::string -> c_str,需要高性能。 (但事实上,我真的不喜欢容器之类的东西。)

【问题讨论】:

  • 有两件事...我是一个俄罗斯非常年轻的程序员,所以我可能会在英语中犯一些错误)...如果我的 q.是两个简单的,就像“阅读手册懒惰的家伙!”一样,让我知道,我的 q。回答它并不奇怪......
  • 尝试使用不同的 boost::asio 读取函数。使用将数据直接存储到 char 数组而不是 streambuf 的重载之一。

标签: c++ boost char buffer


【解决方案1】:

您假设将 std::string 转换为 C 字符串会损害性能。

这不应该被假定。 std::string 通常被实现为 C 字符串的包装器。

如果您对当前的性能不满意,请首先对您的代码使用运行时分析器。

【讨论】:

  • M... 好的... 谢谢... 我只看到流读取,由 streambuf 制作的方式(而且它真的很慢),现在我找到了更好的方法这样做。 (通过迭代器)
猜你喜欢
  • 2017-01-05
  • 1970-01-01
  • 1970-01-01
  • 2013-06-16
  • 2016-03-09
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多