一、问题描述
由于蓝桥杯快开始了,所以最近鼠鼠也是使用上了DEV-C++这款软件了,今天刷题发现dev里面的to_string()函数竟然用不了,看网上有各种方法,总结了如下两种方法。
二、解决方法
(一)更改编译器配置
打开 工具 -> 编译选项 -> 代码生成/优化
然后勾选ISO C++ 11就好了
(二)手写一个to_string()函数
这个函数就是把括号内传入的参数转换为字符串的数据格式,我刚接触这个函数之前的处理方法还是定义一个字符串,比如说要转换的数为int类型的 ,我就一位一位的将数存进去 , 但好在随着不断的学习,也是接触到了这个函数,这个函数还可以处理浮点数,对于浮点数反转的题目还是提供了不错的选择的。
但是浮点数是有精度的,使用时还是要注意的,不然就像这样
double a = 33.3;
string str = to_string(a);
reverse(str.begin(),str.end());
cout<<str;
具体to_string()函数代码如下:
template <typename LJY>
string to_string(const LJY &t){
ostringstream os;
os<<t;
return os.str();
}
template<typename LJY>
定义了一个模板,其中 LJY 是一个占位符,代表任何数据类型。
然后我就定义了一个模板函数,其中利用 sstream 库中的 ostringstream 类创建了一个输出字符串流对象 os ,通过 << 操作符将 LJY 类型的变量 t 写入到字符串流中,最后通过 os.str()方法获取流中的对象来返回。