【问题标题】:Linked-list based vector基于链表的向量
【发布时间】:2013-02-12 16:07:36
【问题描述】:

我在考虑使用 std::vector 容器的缺点,并且想知道使用分块链表作为后端是否可以避免在向量扩展时发生的复制。

类似this

我想我的问题是,这是一个实用的想法吗?我是否可以假设从容器中读取的运行时间与基于数组的向量相似,而“增长”时间会大大减少?

【问题讨论】:

  • 应该修复,对此感到抱歉!
  • std::deque 及其原生适配器 queuestack
  • 这似乎是一个依赖于应用程序的问题,但我没有看到应用程序。

标签: c++ containers


【解决方案1】:

您的解决方案的运行时(随机)访问权限将大于std::vector 的访问权限。

为了访问元素N,您可能需要通过许多链接才能到达相应的块,然后通过块访问一个元素。

可以通过预先分配更大的大小来降低大向量的性能。

如果插入和删除频繁,则向量可能是错误的数据结构。

【讨论】:

    【解决方案2】:

    您可以使用std::deque 做一些实验,这只是您的描述。

    【讨论】:

      猜你喜欢
      • 2022-10-06
      • 1970-01-01
      • 2018-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2015-03-01
      相关资源
      最近更新 更多