[英]C++ Int to String by using ostringstream or stringstream
我一直在使用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;
有三分之一你沒有提到, istringstream
,你不能使用(你可以,但它會有所不同,你不能<<
到一個istringstream
)。
stringstream
既是一個ostringstream
也是一個istringstream
- 你可以通過<<
和>>
兩種方式進出。
使用ostringstream
,你只能使用<<
,而你不能用>>
。
沒有什么區別,您可以使用任何一種方法將字符串轉換為整數。 如果你想以最快的方式做到這一點,我認為boost::lexical_cast
有這個標題,或者你可以使用itoa
函數,它可能比stringstream
更快,但如果你使用itoa
,你會失去C ++和標准庫的優點(你必須使用C字符串等)。
另外,正如Benjamin Lindley告訴我們的那樣,C ++ 11有超靈敏的std::to_string
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.