What's the difference between istringstream, ostringstream and stringstream? / Why not use stringstream in every case?

Viewed 85608

When would I use std::istringstream, std::ostringstream and std::stringstream and why shouldn't I just use std::stringstream in every scenario (are there any runtime performance issues?).

Lastly, is there anything bad about this (instead of using a stream at all):

std::string stHehe("Hello ");

stHehe += "stackoverflow.com";
stHehe += "!";
8 Answers

std::ostringstream::str() creates a copy of the stream's content, which doubles memory usage in some situations. You can use std::stringstream and its rdbuf() function instead to avoid this.

More details here: how to write ostringstream directly to cout

Related