是否需要清除 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("") }
}
显然,当您不断在流中插入数据时,它会消耗更多的内存,这在某些时候可能会很多。
清除它可以防止这种情况发生。
我在长时间运行的应用程序中使用 ostringstream
对象将调试信息打印到标准输出。我根据命令行参数(例如,详细标志)切换应用程序是否实际打印和清除 ostringstream
对象。当详细开关未断言时,我仍然写入 ostringstream
对象,但我从未清除它。
我想知道这有多糟糕,我是否应该更加小心地清除对象?是否有任何负面影响,例如使用过多的内存?
// example code
ostringstream oss;
while (1){
oss << " still alive " << endl;
if (verbose) { cout << oss.str(); oss.str("") }
}
显然,当您不断在流中插入数据时,它会消耗更多的内存,这在某些时候可能会很多。
清除它可以防止这种情况发生。