容器都有那些 佇列,棧,堆的區別?都有那些操作?

2022-08-27 17:21:09 字數 597 閱讀 9613

容器分為順序容器和關聯容器。

順序容器:vector ,deque(雙端佇列), list

使用情況:

1.vector和 deque 支援隨機訪問元素。

2.如果必須在容器的中間位置插入和刪除元素,則選用list.

3.如果只是在容器的頭部和末尾插入和刪除元素,則選用deque.

操作:1.vector,deque,list均支援在末尾新增和刪除乙個元素:push_back ,pop_back.

2.vector,deque,list均支援插入和刪除乙個元素:insert ,erase. 

3.deque ,list 支援在頭部新增和刪除乙個元素:push_front, pop_front.     vector不支援。

佇列&棧:線性資料結構。

佇列:fifo,支援在隊頭刪除元素,在隊尾插入元素。操作有:q.front();q.rear();

棧:lifo,支援在隊頭插入和刪除元素。操作有:s.push();s.pop();s.top();

堆區& 棧區:資料儲存區。

堆區:動態申請的區域,空間比較大。使用new申請的就是在這個地方獲得記憶體。

棧區:儲存變數的區域。

棧,佇列,堆的區別

堆,棧,佇列的區別 從記憶體分配上來說 棧是作業系統在建立某個程序或者執行緒時建立的乙個儲存區域,是執行緒私有的,棧中存的是區域性變數之類,函式引數。由作業系統自動分配。堆是程式執行時,向作業系統申請某大小的記憶體空間,所有new 出來的物件和陣列都是儲存在堆中的。從資料結構來說 堆是完全二叉樹 棧...

String 類的常用方法都有那些?

十八 int lastindexof int ch 十九 int lastindexof int ch,int fromindex 二十 int lastindexof string str 二十一 int lastindexof string str,int fromindex 十五 int le...

http的請求頭都有那些資訊

每個http請求和響應都會帶有相應的頭部資訊。預設情況下,在傳送xhr請求的同時,還會傳送下列頭部資訊 例如 chrome下的請求頭資訊 雖然不同瀏覽器實際傳送的頭部資訊會有所不同,但以上列出的基本上是瀏覽器都會傳送的,用setrequestheader 方法也可以設定請求頭資訊,該函式接受兩個引數...