Skip to content
Rain Hu's Workspace
Go back

[C++] The C++ Standard Template Library(STL) - deque

Rain Hu

Deque

函式

1. push_front()

2. push_back()

3. front()

4. back()

5. begin()

6. end()

7. insert()

8. erase()

9. pop_front()

10. pop_back()

11. empty()

12. clear()

13. random_access()

內部運作原理

deque

  1. 這可以通過使用指向一些固定大小的塊的指標數位來實現,這些塊包含deque數據。下面是一個說明性示例。
  2. 這些 Deque 數據被劃分為固定大小的塊。在這裡,我們考慮了將數據劃分為大小為5的固定塊。
  3. 塊的填充從指標的兩個 deque 陣列的中間開始,並使用push_front和push_back操作向前和向後擴展。中間塊通常是滿的,當它被填滿時,數據被移動到上部或下部塊。
  4. 在上部塊中,元素以相反的順序推送,因為在這種情況下,填充數據的第一個位置將是4,然後是3,2,1,0。但是在中間和下部塊中,數據按正向順序填充,如0,1,2,3,4等。
  5. 當上面的塊被填滿時,指標將創建一個新塊並開始指向一個新的數位塊。這為更多數據創造了空間。在這種情況下,也可以填充指標塊。這會導致一個問題。
  6. 這是加倍來救援的時候。在加倍時,指標陣列的大小加倍。這不會複製整個數據,而只會複製指標。這是許多人在討論恆定時間時提出的一般論點。時間在調用的複製構造函數數方面保持不變。
  7. 如果數據集非常大,則指標塊幾乎不會執行加倍,因為單個指標可以指向大量數據塊。因此,指標陣列被填充並加倍的可能性非常小。

Share this post on:

Previous
[Life] Some change of road to SWE
Next
[C++] Custom Comparator