我最近发现std::strstream
已弃用,而赞成std::stringstream
。自从我使用它已经有一段时间了,但是它做了我当时需要做的事情,所以听到它被弃用感到惊讶。
我的问题是为什么要做出这个决定,而std::stringstream
提供的好处是什么std::strstream
呢?
我最近发现std::strstream
已弃用,而赞成std::stringstream
。自从我使用它已经有一段时间了,但是它做了我当时需要做的事情,所以听到它被弃用感到惊讶。
我的问题是为什么要做出这个决定,而std::stringstream
提供的好处是什么std::strstream
呢?
Answers:
该strstream
返回了char *
,这是非常难以管理,因为无处它指出它是如何被分配。因此,不可能知道应该删除它还是对其调用free()或完全执行其他操作。唯一真正令人满意的解除分配方法是strstream
通过freeze()
函数将其交还给via 。这显然不够明显,以至于很多人都弄错了。将stringstream
返回一个String对象,其管理本身,这是远远不容易出错。
还有一个必须使用ends
终止字符串的问题,但我相信释放问题是不赞成使用的主要原因。
Astrstream
建立一个char *
。Astd::stringstream
建立一个std::string
。我认为strstream
s已被弃用,因为它可能会std::string
自动阻止缓冲区溢出。