我最近发现不赞成使用std::strstream
,而建议使用std::stringstream
。自从我使用它已经有一段时间了,但是它做了我当时需要做的事情,所以听到它被弃用感到惊讶。
我的问题是为什么要做出此决定,而std::stringstream
提供了std::strstream
缺少的哪些好处?
最佳答案
strstream
返回了一个很难管理的char *
,因为没有地方说明如何分配。因此,不可能知道应该删除它还是对其调用free()或完全执行其他操作。唯一真正令人满意的解除分配方法是通过strstream
函数将其交还给freeze()
。这显然不够明显,以至于很多人都弄错了。 stringstream
返回一个可自我管理的字符串对象,该对象很少出错。
还有一个问题,必须使用ends
终止字符串,但是我认为释放问题是弃用的主要原因。
关于c++ - 为什么不推荐使用std::strstream?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2820221/