转换为 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"