C++ C++;使用ostringstream或stringstream将Int转换为字符串
我一直在使用C++ C++;使用ostringstream或stringstream将Int转换为字符串,c++,string,stringstream,ostringstream,C++,String,Stringstream,Ostringstream,我一直在使用stringstream将Integer转换为String,但后来我意识到同样的操作也可以用ostringstream完成 当我使用.str()时,它们之间有什么区别?还有,有没有更有效的方法将整数转换为字符串 示例代码: //using ostringstream ostringstream s1; int i=100; s1<<i; string str_i=s1.str(); cout<<str_i<<endl; //using stri
stringstream
将Integer
转换为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;
//使用ostringstream
ostringstream s1;
int i=100;
s1还有第三个你没有提到的,istringstream
,你不能使用它(好吧,你可以,但这会有所不同,你不能在fnprintf已经回答了同样的问题,当然这取决于你的代码。C++11有@cateof抱歉,我没有看到那篇帖子。@BenjaminLindley Whoaaa C++11又让我大吃一惊了。我以为我们得到的只是字符串->int和stoi
和朋友,但我不知道我们有我也有其他方法。非常感谢!我一定会尝试你提到的方法。我认为boost::lexical_cast
很棒,但就运行时性能而言,它可能不是最好的。它只是对ostringstream
技术的包装。请看。@fredrasson我认为boost对整数或som做了一些专门化这使得它更快了。也许我只是在某个地方误读了一些东西。@SethCarnegie:哦,也许。那将是一个好主意。@Fredrarson,我认为这不一定再是真的了。到目前为止,这里的代码远不止一个stringstream
的简单包装器。