非常容易用错的 ss
来源:互联网 发布:编程语言的都有啥 编辑:程序博客网 时间:2024/05/16 10:55
原文链接:http://dearymz.blog.163.com/blog/static/2056574200912644333989/
由于 C++ 中的 std::string 没有提供类似 format 这样的函数,
遇到字符串的格式化一般的替代品是用 std::ostringstream。
但 ostringstream 有一些方法非常容易用错:
void clear(iostate state = goodbit)
该方法绝非清空 ostringstream 中的内容,而是清空该流的错误标记!
在 STL 容器里 clear 方法的含义均为清空容器,但在 STL 的所有流中 clear 的含义均为清空错误标记!
void str(const string& s) 该方法是重新给 ostringstream 灌新值的意思。
比如 oss.str("") 将会执行真正的 oss 清空操作,神奇吧?
同理 oss.str("Hello") 将会使 oss 中的内容为 "Hello"。
但注意:oss.str("Hello"); oss << "World"; 的执行结果将会变成"World"而不是"HelloWorld",
这种功能简直太神奇了,让我活到老学 oss 到老啊。
不知道世界上有多少程序员曾经为 stringstream 而愤怒过
2009-11-25
ostringstream::str 签名为:
string str( ) const;
returns a copy of the string object currently associated with the string stream buffer.
void str(const string& s);
copies the content of string s to the string object associated with the string stream buffer.
The function effectivelly calls rdbuf()->str(). Notice that setting a new string does not
clear the error flags currently set in the stream object unless the member function clear is explicitly called.
项目中经常会用到 ostringstream.str() 方法,尽量控制不必要的重复调用,这可能会带来性能问题。
- 非常容易用错的 ss
- Axure非常的好学,非常容易入手!
- vc++网格的画法,非常容易
- proxool非常容易忽视的异常
- proxool非常容易忽视的异常
- 非常容易搞混的Java知识点
- DataTable DataView DataGrid 非常容易混淆的概念
- 容易忽视但功能能非常强大的javaAPI
- memcached几个容易被忽略但非常有用的命令
- 一些非常容易混淆的零碎知识点积累
- poj 3678 2-sat 建图非常容易错!!
- 容易用错的日语(1)
- 容易用错的日语(2)
- 容易用错的日语(3)
- ss!=null&&!ss.isEmpty()的区别
- 关联--依赖、组合--聚合 的联系与区别(解释的非常容易理解)
- 二进制十进制的转换。个人的理解。非常容易记下来。
- 图形图像基本处理之——一个非常容易理解的图像求质心代码
- dij 邻接表
- “华夏”从何而来
- 谈谈开源技术选型
- 用C#去除字符串中HTML的格式(清除数据库中html标签)
- 杭电ACM 2024C语言合法标识符-----20140726
- 非常容易用错的 ss
- android基础笔记:ContentValues应用(查询、添加手机联系人)
- 动态链接库(DLL)重定址
- eclipse Hadoop开发环境配置
- Java应用程序运行机制
- Android下使用C语言的四种编译方式
- decode和case 改写一例
- 23模式的总结
- Android ListView圆角