简单的问题只是出于好奇。
类上的多个方法需要使用字符串流,或者特别是ostringstream。
1)将一个stringstream变量作为一个类成员,然后在使用之前清除它,即msg.str("")
2)每次需要使用时,在每个方法中本地创建一个新的stringstream变量。
在效率和整洁方面,哪种方法最好?
我的预感是选项1,但不确定初始构造是否与每次调用str()相结合会更糟?
P.S。我已阅读Initializing.. which one is more efficient?和Which is quicker/more efficient?,我的下一步将是让我查看分析并编写一个小型测试应用,但我觉得可能会更快: - )
答案 0 :(得分:7)
不要先使用stringstream
。使用istringstream
或
ostringstream
,这是合适的。并且只使用一次;
清除它是一项复杂的操作,需要几行代码,
很容易忘记一些事情。 msg.str("")
没有开始
解决所有的州。您还需要重置格式标记,
错误状态,异常掩码和任何其他格式
通过xalloc
获取的变量中设置的信息。