簡體   English   中英

C ++ Int to String使用ostringstream或stringstream

[英]C++ Int to String by using ostringstream or stringstream

我一直在使用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;

有三分之一你沒有提到, 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM