ss.clear(); //实际上,它并不清空任何内容,它只是重置了流的状态标志而已!
正确用法
ss.str("");
例子
std::stringstream stream;
std::string str;
while(1)
{
//clear(),这个名字让很多人想当然地认为它会清除流的内容。
//实际上,它并不清空任何内容,它只是重置了流的状态标志而已!
//stream.clear();
// 去掉下面这行注释,清空stringstream的缓冲,每次循环内存消耗将不再增加!
stream.str("");
stream<<"测试";
stream>>str;
// 去掉下面两行注释,看看每次循环,你的内存消耗增加了多少!
cout<<"Size of stream = "<<stream.str().length()<<endl;
system("PAUSE");
}
本文解释了在C++中使用stringstream时常见的误区,并给出了正确的使用方式。强调了使用ss.clear()并不能真正清空流内容,而ss.str()才是正确的方法来清空stringstream缓冲区。

4785

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



