【问题标题】:How to get std::deque pointer to the raw data?如何获取指向原始数据的 std::deque 指针?
【发布时间】:2014-07-01 21:09:20
【问题描述】:

我知道 std::vector 和 std::vector: data() 和 &something[0] 都可以,那 std::deque 呢? std::deque 没有 data() 函数。

编辑:如果不保证 std::deque 使用连续存储,我如何实现可以获取原始数据的双端队列?

【问题讨论】:

  • std::deque 不保证使用连续存储。因此可能没有原始数据数组来获取指针。
  • “我如何实现一个可以获取原始数据的双端队列?” -- 没有意义,请改写。
  • 为什么你认为你需要“原始数据”?你真正希望做什么?
  • @Jonathan Wakely 一个函数(接口)需要一个数组
  • @user3793905,那么从deque获取不到,没有数组。要么不要使用deque,要么将元素复制到vector之类的东西中

标签: c++ std


【解决方案1】:

deque 中包含的数据不保证放在连续的内存块中。这意味着不可能有类似于vector的data()的函数。

【讨论】:

    【解决方案2】:

    不,双端队列是一种动态增长的数据结构。与 std::vector 不同,它不像数组那样布局在内存中,而是作为指向前一个和下一个内存部分的任意内存位置。

    【讨论】:

      猜你喜欢
      • 2011-09-23
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多