6

我只是想知道 clear() 和 str(""); 之间有什么区别。

例如:

stringstream ss("Stack Overflow");

ss.clear();

ss.str("");

我想知道潜在的技术差异。

4

2 回答 2

15

clear()清除stringstream. 也就是说,它将错误状态设置为goodbit(等于零)。

str("")将关联的字符串对象设置为空字符串。

他们实际上做了完全不同的事情。名称的特殊选择只会让人听起来好像它们执行类似的任务。

于 2008-12-09T11:20:56.040 回答
5
void clear ( iostate state = goodbit ) //clears and sets error flag passed as parameter

string str ( ) const;          //to get value from string stream
void str ( const string & s ); //to set value to string stream
于 2008-12-09T11:29:16.973 回答