C++ Int to String使用ostringstream或stringstream

Mal*_*ian 4 c++ string stringstream ostringstream

我一直在使用stringstream转换IntegerString,但后来我意识到同样的操作是可以做到的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;
Run Code Online (Sandbox Code Playgroud)

Set*_*gie 11

有三分之一你没有提到,istringstream你不能使用(你可以,但它会有所不同,你不能<<istringstream).

stringstream是一个ostringstream和一个istringstream- 你可以<<>>两种方式,进出.

ostringstream,你只能进去<<,你不能出去>>.

没有什么区别,您可以使用任何一种方法将字符串转换为整数.如果你想以最快的方式做到这一点,我认为boost::lexical_cast有这个标题,或者你可以使用itoa可能比这更快的功能stringstream,但如果你使用C++和标准库你会失去优势itoa(你必须使用C-字符串等).

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