Jaka jest różnica między istringstream, ostringstream i stringstream? Dlaczego nie używać stringstream w każdym przypadku?

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!”);

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.