我在一个运行了很长时间的应用程序中使用一个ostringstream对象来打印调试信息以实现标准输出。我切换应用程序是否根据命令行arg实际打印和清除ostringstream对象(例如,详细标志)。当没有断言详细的开关时,我仍然写到ostringstream对象,但是我从来没有清除它。
我想弄清楚这件事有多糟糕,我是否应该更加小心地清理这个物体?是否有任何负面影响,如使用过多的内存?
// example code
ostringstream oss;
while (1){
oss << " still alive " << endl;
if (verbose) { cout << oss.str(); oss.str("") }
}发布于 2017-05-01 13:23:45
显然,当您继续在流中插入数据时,它会消耗更多的内存,这在某种程度上可能会很大。
清除它将防止这种情况发生。
https://stackoverflow.com/questions/43719737
复制相似问题