語法 STL容器介面卡 佇列,優先佇列,堆,棧

2021-08-01 16:56:34 字數 1381 閱讀 7275

deque在分段的連續記憶體空間維護其整體連續的假象

queue

values;

//使用push函式,將元素新增到佇列中

values.push(3.2);

values.push(9.8);

values.push(5.4);

cout

<<"popping from values: ";

//使用empty函式,判斷佇列是否為空

while (!values.empty())

優先佇列預設使用最大堆實現,後者預設利用vecotr實現

priority_queue p_q_max;

priority_queue < int, vector

, greater> p_q_min;

srand(1);

for (auto i = 0; i < 10;++i)

while (!p_q_max.empty())

cout

<< endl;

while (!p_q_min.empty())

cout

<< endl;

不是容器元件,幕後英雄,一般利用vector為實現

int

array[9] = ;

vector

vec(array,array+9);

make_heap(vec.begin(), vec.end());//建堆,stl提供的是max-heap

vec.push_back(10);

push_heap(vec.begin(), vec.end());//維護堆

//將最後乙個元素視為新增元素,將其餘元素視為完整的heap

pop_heap(vec.begin(),vec.end());//彈出堆頂

//堆頂移到最後一位

stack

> mystack;

mystack.push(1);

mystack.push(2);

mystack.push(3);

cout

<< mystack.top() << endl;

mystack.pop();

cout

<< mystack.top() << endl;

mystack.pop(); cout

<< mystack.top() << endl;

mystack.pop();

容器介面卡(棧容器介面卡 佇列容器介面卡)

我們已有的容器 比如vector list 這個容器支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器重新封裝一下,改變它的介面,就能把它當做棧使用了。c 定義了三種容器介面卡...

STL 容器介面卡

那麼c 中的容器介面卡是幹什麼的呢?可以做乙個模擬,我們已有的容器 比如vector list deque 就是裝置,這個裝置支援的操作很多,比如插入,刪除,迭代器訪問等等。而我們希望這個容器表現出來的是棧的樣子 先進後出,入棧出棧等等,此時,我們沒有必要重新動手寫乙個新的資料結構,而是把原來的容器...

STL容器介面卡

stl學習系列之六 容器介面卡 stl提供了三種容器介面卡 stack,queue,priority queue。介面卡並不是第一類容器,因為它們並沒有提供與元素的儲存形式有關的真正資料結構實現,並且介面卡不支援迭代器。介面卡的優點是 能夠使程式設計師選擇一種合適的底層資料結構。這三個介面卡類都提供...