我希望使用一个标准的C++容器作为从网络套接字(即T = byte或unsigned char)读取数据的累加器。我希望容器在构造时保留一个容量,而不是初始化元素。也就是说,我想做的是:
container c(1024);让集装箱预定1024个八位数。一步结构/容量很重要,因为我想在初始化器中使用它。
我也想要毗连的仓库。如果容器必须增长,新的存储应该是连续的。
我还希望能够对容器进行append字节。我希望能够在容器中搜索字节字符串。
vector和string并不适合,因为构造和预留是两个步骤,它们使用额外的分配,并初始化元素。另外,vector缺少搜索功能。(编辑:vector很好,这要归功于<algorithm>;感谢DYP和轨道上的轻盈竞赛)。
是否有任何具有该属性的C++标准容器?
发布于 2014-01-19 14:28:56
你问错问题了。
标准库没有为每次使用提供容器,而是提供了一些有用的构建块。
如果您想要连续存储,那么您应该使用std::vector并研究如何使它与您的其他需求相匹配:
construct方法的分配器来完成的。std::search或滚动自己的特定搜索算法来完成的(Knuth,Boyer,.)无论如何,我建议将vector封装到一个具有明确语义角色的专用类中。
https://stackoverflow.com/questions/21217555
复制相似问题