简单的问题只是出于好奇。
一个类上的多个方法需要使用一个字符串流,或者特别是一个字符串流。
1)有一个字符串流变量作为类成员,然后在使用它之前清除它,即msg.str("")
2)每次需要使用时,都会在每个方法中本地创建一个新的字符串变量。
从效率和整洁的角度来看,实现这一目标的最佳方式是什么?
我的预感是选项1,但不确定初始构造加上对str()的每个调用是否会更糟?
我读过Initializing.. which one is more efficient?和Which is quicker/more efficient?,下一步将是研究分析和编写一个小测试应用程序,但我觉得询问可能会更快一些:-)
发布于 2012-01-06 10:35:58
一开始不要使用stringstream。使用istringstream或ostringstream,这是非常合适的。并且只使用它一次;清除它是一个复杂的操作,需要几行代码,而且很容易忘记一些东西。msg.str("")并没有开始解决所有的问题。您还需要重置格式化标志、错误状态、异常掩码以及通过xalloc获取的变量中的任何其他格式设置信息。
https://stackoverflow.com/questions/8756398
复制相似问题