В чем разница между очисткой строкового потока и str
-
20-08-2019 - |
Вопрос
Я просто хотел знать, в чем разница междуclear() и str("");
Например:
stringstream ss("Stack Overflow");
ss.clear();
ss.str("");
Я хотел знать основную техническую разницу.
Решение
clear()
очищает флаги состояния ошибки в stringstream
.То есть он устанавливает состояние ошибки на goodbit
(что равно нулю).
str("")
устанавливает связанный строковый объект в пустую строку.
На самом деле они делают совершенно разные вещи.Своеобразный выбор имен только делает его звук как будто они выполняют схожие задачи.
Другие советы
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
Не связан с StackOverflow