轉換為 stdstring
通過將物件插入 std::ostringstream
物件(使用流插入運算子 <<
),然後將整個 std::ostringstream
轉換為 std::string
, std::ostringstream
可用於將任何可流傳輸型別轉換為字串表示形式。
例如 int
:
#include <sstream>
int main()
{
int val = 4;
std::ostringstream str;
str << val;
std::string converted = str.str();
return 0;
}
編寫自己的轉換函式,簡單:
template<class T>
std::string toString(const T& x)
{
std::ostringstream ss;
ss << x;
return ss.str();
}
有效,但不適合效能關鍵程式碼。
如果需要,使用者定義的類可以實現流插入運算子:
std::ostream operator<<( std::ostream& out, const A& a )
{
// write a string representation of a to out
return out;
}
Version >= C++ 11
除了流之外,從 C++ 11 開始,你還可以使用 std::to_string
(和 std::to_wstring
)函式,該函式為所有基本型別過載並返回其引數的字串表示形式。
std::string s = to_string(0x12f3); // after this the string s contains "4851"