【发布时间】:2011-08-05 07:21:25
【问题描述】:
如果我需要一个二进制缓冲区对象,
就像用于 TCP/UDP 通信的一样,
在 c++ 中,我将基于什么?
vector<unsigned char>?std::string? -- std::string 可以保存 0 字节,与流行的看法相反,所以它可以用来保存二进制数据new char[]?malloc()?
有人看到用于二进制缓冲区的 std::vector 吗?
我没有看到。为什么 ?表现 ?
我确实看到 malloc() 经常用于二进制缓冲区。
在 C++ 中。有人可以确认吗?解释一下?
谢谢
【问题讨论】:
-
我怀疑答案将取决于您要使用缓冲区的目的以及您希望如何使用它。
-
Boost Asio 使用/推荐 char 向量来存储二进制数据。所以我认为它不应该带来任何性能问题
标签: c++ winapi stl memory-management malloc