首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >标准集装箱在建筑中保留吗?

问标准集装箱在建筑中保留吗?
EN

Stack Overflow用户
提问于 2014-01-19 13:47:45
回答 1查看 384关注 0票数 3

我希望使用一个标准的C++容器作为从网络套接字(即T = byte或unsigned char)读取数据的累加器。我希望容器在构造时保留一个容量,而不是初始化元素。也就是说,我想做的是:

代码语言:javascript
复制
container c(1024);

让集装箱预定1024个八位数。一步结构/容量很重要,因为我想在初始化器中使用它。

我也想要毗连的仓库。如果容器必须增长,新的存储应该是连续的。

我还希望能够对容器进行append字节。我希望能够在容器中搜索字节字符串。

vector和string并不适合,因为构造和预留是两个步骤,它们使用额外的分配,并初始化元素。另外,vector缺少搜索功能。(编辑:vector很好,这要归功于<algorithm>;感谢DYP和轨道上的轻盈竞赛)。

是否有任何具有该属性的C++标准容器?

EN

回答 1

Stack Overflow用户

发布于 2014-01-19 14:28:56

你问错问题了。

标准库没有为每次使用提供容器,而是提供了一些有用的构建块。

如果您想要连续存储,那么您应该使用std::vector并研究如何使它与您的其他需求相匹配:

  • 非初始化是通过提供一个非op construct方法的分配器来完成的。
  • 搜索模式是通过使用std::search或滚动自己的特定搜索算法来完成的(Knuth,Boyer,.)

无论如何,我建议将vector封装到一个具有明确语义角色的专用类中。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21217555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档