【问题标题】:How to control the chunk size of `std::deque` when allocating a new chunk?分配新块时如何控制`std::deque`的块大小?
【发布时间】:2014-08-20 09:22:00
【问题描述】:

当我们在std::deque 中插入一个新元素时,如果现有块都已满,它可能会分配一个新块来包含该元素。

但是,实现如何控制块大小?

用户可以控制块大小吗?或者它只取决于实现的选择,例如4K 还是 8K?

【问题讨论】:

  • 它是实现定义的——没有(便携式)方法来控制它。
  • 你必须自己写...
  • 您可以提供自定义分配器来进行预分配。
  • 想一想,我认为它实际上是未指定的,而不是实现定义的。定义的实现需要实现文档的大小,我不认为是这种情况。

标签: c++ memory-management stl implementation deque


【解决方案1】:

这是一个选择的实现值,无法控制它。

例如,Microsoft 为块中的元素数选择 16 或更小的值。 (搜索 _DEQUESIZ)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 2011-02-02
    • 1970-01-01
    • 2015-05-19
    • 2013-10-05
    • 2016-07-31
    相关资源
    最近更新 更多