在for循环中每次调用ss.clear()是希望在每次使用完ss之后清理strStream占用的资源,但stringstream的clear方法并没有真正地释放ss占用的空间,这样ss所占用的空间一直在增长。当size较大时,ss消耗的内存迅速增长,可能出现严重问题。
正确方法如下:
stringstream ss;
for(...){
ss.clear();
ss.str("");
}
本文指出在for循环中仅使用stringstream的clear方法并不能有效释放资源,正确的做法是在每次循环开始前,除了调用clear()外,还需调用str()来清空字符串流。这能避免随着循环次数增加,stringstream占用的内存不断增长的问题。
在for循环中每次调用ss.clear()是希望在每次使用完ss之后清理strStream占用的资源,但stringstream的clear方法并没有真正地释放ss占用的空间,这样ss所占用的空间一直在增长。当size较大时,ss消耗的内存迅速增长,可能出现严重问题。
正确方法如下:
stringstream ss;
for(...){
ss.clear();
ss.str("");
}
2459
1328

被折叠的 条评论
为什么被折叠?