Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/164.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何清除ostringstream Ostringstreams; s_C++_Stream - Fatal编程技术网

C++ 如何清除ostringstream Ostringstreams; s

C++ 如何清除ostringstream Ostringstreams; s,c++,stream,C++,Stream,第一行需要将字符串重置为空;第二行用于清除可能设置的任何错误标志。如果您知道没有设置错误标志,或者不关心重置它们,那么就不需要调用clear() 通常,只使用一个新的std::ostringstream对象而不是重用一个现有对象更容易、更干净、更直接(更直截了当?),除非代码用于已知的性能热点。+1用于每次创建一个新的流。流可以有很多内部状态。重置所有这些至少需要与流构造函数一样多的代码。这个答案也值得一看:相关问题:当在循环中声明时,ostringstream是否会在每次迭代中被破坏和构造,或

第一行需要将字符串重置为空;第二行用于清除可能设置的任何错误标志。如果您知道没有设置错误标志,或者不关心重置它们,那么就不需要调用
clear()


通常,只使用一个新的
std::ostringstream
对象而不是重用一个现有对象更容易、更干净、更直接(更直截了当?),除非代码用于已知的性能热点。

+1用于每次创建一个新的流。流可以有很多内部状态。重置所有这些至少需要与流构造函数一样多的代码。这个答案也值得一看:相关问题:当在循环中声明时,ostringstream是否会在每次迭代中被破坏和构造,或者我需要使用此方法?例如,
For(inti=0;i@ThanasisPapoutsidakis是的,范围{}将在每次迭代后销毁循环中的任何局部变量,因此每个foo都是一个全新的实例。STL实现是否会有一个内部缓存,以重用旧字符串流和其他类型的内存?现在可能不会,因为所有内容都是多线程优化,如此和写时复制(COW)没有那么有用。
#定义sstr(x)(oss.str(“”),oss.clear(),oss
ostringstream s;

    s << "123";
    cout << s.str().c_str() << endl;

    // how to clear ostringstream here?
    s << "456";
    cout << s.str().c_str() << endl;
123
123456
123
456
s.str("");
s.clear();