簡體   English   中英

STL內部:deque實現

[英]STL internals: deque implementation

我使用std :: deque來存儲大量的項目
我知道deques是作為矢量列表實現的。 這些矢量的大小無法設置,但我喜歡選擇該大小的算法。

deque被實現為向量向量(向量列表將阻礙恆定時間隨機訪問)。 輔助向量的大小取決於實現,常見的算法是使用以字節為單位的常量大小。

我的deque實現,即GNU中的一個源自HP / SGI版本的實現,不是一個向量列表; 至少,不是std::vectorstd::list 評論說明

*  In previous HP/SGI versions of deque, there was an extra template
*  parameter so users could control the node size.  This extension turned
*  out to violate the C++ standard (it can be detected using template
*  template parameters), and it was removed.
*
*  Here's how a deque<Tp> manages memory.  Each deque has 4 members:
*
*  - Tp**        _M_map
*  - size_t      _M_map_size
*  - iterator    _M_start, _M_finish
*
*  map_size is at least 8.  %map is an array of map_size
*  pointers-to-"nodes".  (The name %map has nothing to do with the
*  std::map class, and "nodes" should not be confused with
*  std::list's usage of "node".)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM