for*_*818 5 c++ string tostring c++11
我只是知道C++有一个std::to_string()定义的<string>.现在我想知道为什么to_string()只适用于数字类型.有什么特别的原因,为什么没有更普遍的原因
template <typename T>
std::string to_string(const T& t);
Run Code Online (Sandbox Code Playgroud)
?
可以像这样实现:
template <typename T>
std::string to_string(const T& t) {
std::ostringstream s;
s << t;
return s.str();
}
Run Code Online (Sandbox Code Playgroud)
我怀疑,这样一般to_string不存在的,因为它很容易写你自己的,但同样的道理也适用于to_string()服用int,double等
因为std::to_string()要求。
正如标准所述:
string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string(long double val);返回:每个函数返回一个字符串对象,其中保存其参数值的字符表示形式,该参数值将通过使用格式说明符“%d”、“%u”、“%ld”调用 sprintf(buf, fmt, val) 生成分别为 "、"%lu"、"%lld"、"%llu"、"%f"、"%f" 或 "%Lf",其中buf 指定足够大小的内部字符缓冲区。
编写一个可以确定需要使用的说明符的模板化函数std::sprintf会使事情变得不必要的复杂。
| 归档时间: |
|
| 查看次数: |
779 次 |
| 最近记录: |