For all the standard library types the member function
empty() is a query, not a command, i.e. it means “are you empty?” not “please throw away your contents”.
clear() member function is inherited from
ios and is used to clear the error state of the stream, e.g. if a file stream has the error state set to
eofbit (end-of-file), then calling
clear() will set the error state back to
goodbit (no error).
For clearing the contents of a
is correct, although using:
is technically more efficient, because you avoid invoking the
std::string constructor that takes
const char*. But any compiler these days should be able to generate the same code in both cases – so I would just go with whatever is more readable.[