我什么时候可以使用std::istringstream、std::ostringstream和std::stringstream,为什么我不应该在每个场景中都使用std::stringstream (有什么运行时性能问题吗?)
最后,这有什么不好的地方(而不是使用流):
std::string stHehe("Hello ");
stHehe += "stackoverflow.com";
stHehe += "!";发布于 2010-07-21 00:29:57
在大多数情况下,您不会发现自己需要在同一个字符串流上同时输入和输出,因此使用std::ostringstream和std::istringstream明确地表明了您的意图。它还可以防止您意外地键入错误的运算符(<<与>>)。
当您需要在同一个流上执行这两个操作时,您显然会使用通用版本。
在这里,性能问题是您最不关心的问题,清晰度是主要优势。
最后,使用string append没有错,因为您必须构造纯字符串。您不能像在perl这样的语言中那样使用它来组合数字。
发布于 2010-07-21 00:26:56
istringstream用于输入,ostringstream用于输出。stringstream是输入和输出。你几乎可以在任何地方使用stringstream。然而,如果你将你的对象给了另一个用户,并且它使用了运算符>>,而你却在等待一个只写的对象,你会不高兴;-)
PS:没有什么不好的,只是性能问题。
发布于 2010-07-21 00:28:31
回答你的第三个问题:不,这是完全合理的。使用streams的优点是,您可以输入任何定义了operator<<的值,而您只能向std::string添加字符串( C++或C)。
https://stackoverflow.com/questions/3292107
复制相似问题