Osobiście uważam, że bardzo rzadko chcę przesyłać strumieniowo do i z tego samego strumienia struny.
Zwykle chcę zainicjować strumień z łańcucha, a następnie go przeanalizować; lub przesyłaj strumieniowo rzeczy do strumienia łańcuchowego, a następnie wyodrębnij wynik i zapisz go.
Jeśli przesyłasz strumieniowo do iz tego samego strumienia, musisz bardzo uważać na stan i pozycje strumienia.
Korzystanie z „tylko” istringstream
lub ostringstream
lepiej wyraża swoją intencją i daje pewne sprawdzone przeciwko głupich błędów takich jak przypadkowe wykorzystania <<
vs >>
.
Tam może być jakiś wzrost wydajności, ale nie będę patrzeć na to jako pierwszy.
Nie ma nic złego w tym, co napisałeś. Jeśli okaże się, że nie działa wystarczająco dobrze, możesz profilować inne podejścia, w przeciwnym razie trzymaj się tego, co jest najwyraźniejsze. Osobiście wybrałbym po prostu:
std::string stHehe( "Hello stackoverflow.com!" );