【发布时间】:2008-11-07 22:52:08
【问题描述】:
问题:我有一个整数;这个整数需要转换为 stl::string 类型。
过去,我使用stringstream 进行转换,这有点麻烦。我知道 C 方法是做一个sprintf,但我更愿意做一个类型安全的 C++ 方法。
有没有更好的方法来做到这一点?
这是我过去使用的字符串流方法:
std::string intToString(int i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
当然,这可以改写成这样:
template<class T>
std::string t_to_string(T i)
{
std::stringstream ss;
std::string s;
ss << i;
s = ss.str();
return s;
}
但是,我认为这是一个相当“重量级”的实现。
Zan 注意到调用非常好,但是:
std::string s = t_to_string(my_integer);
无论如何,更好的方法是......很好。
相关:
【问题讨论】:
-
在您的示例 t_to_string 中,我看不出为什么需要模板规范。模板函数可以根据其参数类型确定其模板类型。
-
@Zan:Durp。这就是我发布我没有编译的代码所得到的。
-
下面的一些例子怎么样:codeproject.com/KB/recipes/Tokenizer.aspx 它们非常高效而且有点优雅。
-
@Beh:这个库比简单的 t_to_string() 重得多。它实际上看起来像一个非常好的库,但我不想仅仅为了做一个 t_to_string() 而导入整个东西。