【问题标题】:memory stable C++ vector implementation内存稳定的 C++ 向量实现
【发布时间】:2014-08-03 01:15:37
【问题描述】:

是否有可用的 C++ std::vector 变体(或功能相似的容器),其中元素在内存中的位置是稳定的(至少可以减少范围)?我期望实现是固定大小的块,而不是单个线性分配。我不是在寻找 std:: 容器,而是希望有人分享了这样一个我可以重用的实现。

谢谢

大卫

【问题讨论】:

  • 你的意思是 std::array ?
  • @quantdev:这不是“功能相似”,因为它是静态大小的。 std::deque 符合要求。
  • 稳定是指在末尾添加元素时不会改变,或者即使在开头添加/删除元素时也不会改变周期?
  • 您要解决什么问题?你的用例是什么?

标签: c++ vector


【解决方案1】:

也许你的意思是一个容器,它可以将对象保留在适当的位置而不重新分配/移动它们(指向对象的指针将保持有效,直到对象从容器中删除),在这种情况下,std::list 适合你。

【讨论】:

    【解决方案2】:

    听起来你想要一个std::deque,将数据存储在页面大小的块中,这些块在被删除之前保持稳定。

    【讨论】:

    • 明确地说,“直到擦除”是指“直到 任何迭代器,除了 begin()end() 被擦除”。 emplaceinsert 相同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-11
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多