Kiedy powinienem używać std :: istringstream
, std :: ostringstream
i std :: stringstream
i dlaczego nie powinienem po prostu używać std :: stringstream
w każdym przypadku? Czy jest w tym coś złego?
Przykład:
std::string stzmienna("Witaj na ");
stzmienna += "operiada.pl";
stzmienna += "!";
1 odpowiedź
Jeśli przesyłasz strumieniowo do i z tego samego strumienia, musisz bardzo uważać na jego stan i pozycje. Używanie istringstream lub ostringstream lepiej wyraża twoją intencję i daje ci kontrolę nad głupimi błędami, takimi jak przypadkowe użycie << vs >>. Być może nastąpiła poprawa wydajności, ale nie patrzyłbym na to wcześniej.
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 najczystsze. Osobiście wybrałbym takie rozwiązanie:
std :: string stzmienna („Witaj na operiada.pl!”);