转换为 stdstring

通过将对象插入 std::ostringstream 对象(使用流插入运算符 <<),然后将整个 std::ostringstream 转换为 std::stringstd::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"