Существует третья, которую вы не упомянули, istringstream
, которую вы не можете использовать (ну, вы могли бы, но она была бы другой, вы не можете <<
istringstream
).
stringstream
- это и ostringstream
, и istringstream
- вы можете <<
и >>
в обе стороны, входить и выходить.
С ostringstream
вы можете только войти с <<
, и вы не можете выйти с >>
.
На самом деле нет разницы, вы можете использовать любой способ для преобразования строк в целые числа. Если вы хотите сделать это как можно быстрее, я думаю, что у boost::lexical_cast
есть этот заголовок, или вы можете использовать функцию itoa
, которая может быть быстрее, чем stringstream
, но вы потеряете преимущества C ++ и стандартной библиотеки, если вы используете itoa
(вы должны использовать C-строки и т. д.).
Кроме того, как сообщил нам Бенджамин Линдли, C ++ 11 обладает ультрамагическим std::to_string
.