轉換為 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"