stringstream clear和str有什么区别

mah*_*esh 6 c++ stringstream

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

例如:

stringstream ss("Stack Overflow");

ss.clear();

ss.str("");
Run Code Online (Sandbox Code Playgroud)

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

Alf*_*ulu 15

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

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

他们实际上完成了不同的事情.名称的独特选择只会使它听起来好像执行类似的任务.


yes*_*aaj 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
Run Code Online (Sandbox Code Playgroud)