Мне интересно, почему мы используем здесь строковый поток, а не просто строку.
Если это вопрос, то одна большая причина, почему используется stringstream
это просто - потому что программист работает без особых усилий. Чем меньше кода вы напишете, тем меньше вероятность возникновения ошибок.
Ваш метод использования всего std::string
и поиска пробелов требует, чтобы программист на C ++ написал все эти шаги (создать строку, вручную найти пробелы, et c). Это может быть тривиально для написания, но даже лучшие программисты могут ошибаться в тривиальном коде. Код может содержать ошибки, может не охватывать все крайние случаи и т. Д. c.
Что касается простоты использования:
Когда программист на C ++ видит stringstream
в отношении использования разделить жало пробелом, цель кода сразу становится известна.
Если, с другой стороны, программист решает вручную проанализировать данные, используя только string
и ища пробелы, код будет не сразу понял, что он делает, когда другой программист читает код. Конечно, это может быть быстрая реализация кода другим программистом, но я могу поспорить, что другой программист скажет: «Почему вы не использовали stringstream?».