使用ostringstream或stringstream将C++Int转换为字符串
C++ Int to String by using ostringstream or stringstream
我一直在使用stringstream
将Integer
转换为String
,但后来我意识到使用ostringstream
也可以执行相同的操作。
当我使用.str()
时,它们之间有什么区别?还有,有没有更有效的方法将整数转换为字符串?
样本代码:
//using ostringstream
ostringstream s1;
int i=100;
s1<<i;
string str_i=s1.str();
cout<<str_i<<endl;
//using stringstream
stringstream s2;
int i2=100;
s2<<i2;
string str_i2=s2.str();
cout<<str_i2<<endl;
还有第三个你没有提到,istringstream
,你不能使用它(你可以,但不同的是,你不能将<<
与istringstream
进行比较)。
stringstream
既是ostringstream
又是istringstream
——您可以同时使用<<
和>>
。
使用ostringstream
,您只能使用<<
进入,而不能使用>>
离开。
实际上没有什么区别,您可以使用任何一种方法将字符串转换为整数。如果你想以最快的方式完成,我认为boost::lexical_cast
有这个标题,或者你可以使用itoa
函数,它可能比stringstream
更快,但如果你使用itoa
,你就会失去C++和标准库的优势(你必须使用C字符串等)。
此外,正如Benjamin Lindley告诉我们的那样,C++11具有超大规模的std::to_string
。
相关文章:
- wcstombs_s(),转换字符串的长度
- 使用 CStringW/CStringA 和 CT2W/CT2A 转换字符串有什么区别?
- 无法转换字符串插入函数的参数
- 转换字符串向量:基于先前的值跳过元素
- 从中间器转换字符串不起作用,出了什么问题?
- 失败的证明转换字符串到枚举类
- 如何使用正则表达式和提升转换迭代器标记和转换 c 字符串
- 使用java jni时转换字符串类型
- 如何避免在转换字符串令牌流时重复istringstream构造
- 阿托伊未正确转换字符串
- C++,转换字符串,使连续下划线序列变为单个下划线
- 使用长算术转换字符串
- 转换字符串十进制数时的精度
- 将词法转换字符串提升为双精度
- 使用marshal_as函数转换字符串的性能
- C++不会从数据转换字符串
- 无论如何,在c++ /Qt中转换字符串到结构中的字段
- C++ 隐式类型转换字符串 -> int?
- 转换字符串到浮点数,c++实现
- 用于转换字符串大小写的函数