清空stringstream的最佳方法是什么?

40 c++ stl stringstream

其中一种可能性是:

somestringstream.str("");
Run Code Online (Sandbox Code Playgroud)

但它最优化吗?有没有办法保留stringstream内部缓冲区,以便跟随运算符<<()调用不需要再次保留内存?

Bri*_*ndy 49

我一直都这样做:

s.clear();//clear any bits set
s.str(std::string());
Run Code Online (Sandbox Code Playgroud)

@litb 详细介绍了如何在流的开头搜索到std :: ends,你可以保留你的分配大小.

  • ..和[这解释](http://stackoverflow.com/questions/20731/in-c-how-do-you-clear-a-stringstream-variable)为什么`s.str(std :: string( ))`variant _could_更有效率. (3认同)
  • 或者只是ss.str(""); //更直观 (2认同)