STL原始碼分析 queue容器

2021-10-12 07:02:06 字數 1210 閱讀 4490

源**來自sgi-2.91版本stl_queue.h

先了解deque容器->deque

(1)因為deque容器雙向push和pop的特性,所以queue的底層實現可以完全由deque代替,所以queue與其叫容器,不如叫deque的介面卡。

(2)不帶iterator,不能遍歷

(3)底層實現不一定要deque,list也可以,因為雙向鍊錶滿足頭部push、pop特性

#ifndef __stl_limited_default_templates

template

<

classt,

class

sequence

= deque

>

//預設底層由deque實現

#else

template

<

classt,

class

sequence

>

//也可以換其他容器實現

#endif

class

queue

size_type size()

const

reference front()

const_reference front()

const

reference back()

const_reference back()

const

void

push

(const value_type& x)

void

pop()}

;

template

<

classt,

class

sequence

>

bool

operator==(

const queue

& x,

const queue

& y)

template

<

classt,

class

sequence

>

bool

operator

<

(const queue

& x,

const queue

& y)

佇列Queue原始碼分析

定義 佇列是 只允許在一端進行插入操作,而在另一端進行刪除操作的線性表 缺點 出棧複雜度高,容易造成假溢位 可能對頭有很多空位置,此時插入放到了隊尾,就可能造成溢位,此時叫做假溢位 解決辦法 迴圈佇列 把頭尾相接的循序儲存結構稱為迴圈佇列 可以解決假溢位 佇列的鏈式儲存及結構模式 佇列的鏈式儲存及結...

STL 佇列queue容器

先進先出。從一端 隊尾 插入,另一端 隊頭 刪除。不提供迭代器,不能進行遍歷,不支援隨機訪問。預設建構函式 queue quet 拷貝建構函式 queue const queue que 向隊尾新增元素 push elem 從隊頭移除第乙個元素 pop 返回最後乙個元素 back 返回第乙個元素 f...

STL原始碼剖析 容器 RB tree

rb tree,全稱是red black tree,又稱為 紅黑樹 紅黑樹本質上是一種二叉查詢樹,但它在二叉查詢樹的基礎上額外新增了乙個標記 顏色 同時具有一定的規則。這些規則使紅黑樹保證了一種平衡,插入 刪除 查詢的最壞時間複雜度都為o logn 每個節點不是紅色就是黑色 根結點永遠都是黑色 所有...