【发布时间】:2011-03-08 13:33:23
【问题描述】:
所以istringstream在初始化时复制字符串的内容,例如
string moo("one two three four");
istringstream iss(moo.c_str());
我想知道是否有办法让std::istringstream 使用给定的c_str 作为它的缓冲区而不复制东西。这样,它就不必在将std::istringstream& 传递给以istream& 作为参数的函数之前复制大量内存。
我一直在尝试做的是将一些只接受std::ifstream& 参数(它们主要是解析器)的函数也转换为接受istream&。我是否必须为此创建自己的 istream 子类?
【问题讨论】:
-
查看this answer 的方法(与@Charles 的解决方案基本相同,但为方便起见将
istream包裹起来)。
标签: c++ istream istringstream