是否需要清除 ostringstream 对象?

Does ostringstream object need to be cleared?

我在长时间运行的应用程序中使用 ostringstream 对象将调试信息打印到标准输出。我根据命令行参数(例如,详细标志)切换应用程序是否实际打印和清除 ostringstream 对象。当详细开关未断言时,我仍然写入 ostringstream 对象,但我从未清除它。

我想知道这有多糟糕,我是否应该更加小心地清除对象?是否有任何负面影响,例如使用过多的内存?

// example code 
ostringstream oss;
while (1){
    oss << " still alive " << endl;
    if (verbose) { cout << oss.str(); oss.str("") } 
}

显然,当您不断在流中插入数据时,它会消耗更多的内存,这在某些时候可能会很多。

清除它可以防止这种情况发生。