C ++ Int to String使用ostringstream或stringstream

时间:2012-01-09 20:54:27

标签: c++ string stringstream ostringstream

我一直在使用stringstreamInteger转换为String,但之后我意识到可以使用ostringstream完成相同的操作。

当我使用.str()时,它们之间有什么区别?还有,有更有效的方法将整数转换为字符串吗?

示例代码:

//using ostringstream

ostringstream s1;
int i=100;
s1<<i;
string str_i=s1.str();
cout<<str_i<<endl;

//using stringstream

stringstream s2;
int i2=100;
s2<<i2;
string str_i2=s2.str();
cout<<str_i2<<endl;

1 个答案:

答案 0 :(得分:11)

有三分之一的你没有提及,istringstream,你不能使用(你可以,但它会有所不同,你不能<<到{{1 }})。

istringstream同时是stringstreamostringstream - 您可以istringstream<<两种方式进出。

使用>>,您只能 进入ostringstream,而您无法使用<<

没有什么区别,您可以使用任何一种方法将字符串转换为整数。如果您想以最快的方式执行此操作,我认为>>具有该标题,或者您可以使用可能比boost::lexical_cast更快的itoa函数,但是您失去了优势C ++和标准库,如果你使用stringstream(你必须使用C字符串等)。

另外,正如本杰明林德利告诉我们的那样,C ++ 11具有超灵性std::to_string