日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

deque,list,queue,priority_queue

發布時間:2024/4/11 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 deque,list,queue,priority_queue 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.deque

?

deque雙端隊列容器與vector一樣,采用線性表順序存儲結構,但與vector唯一不同的是,deque采用分塊的線性存儲結構來存儲數據,每塊的大小一般為512字節,稱為一個deque塊,所有的deque使用一個map塊進行管理,每個map數據項記錄各個deque塊的首地址,這樣一來,deque塊在頭部和尾部都可以插入和刪除元素,而不需要移動其它元素,在尾部插入元素使用push_back(),在頭部插入使用push_front(),在中間插入使用insert(),但是在中間插入只是覆蓋原來位置的元素,并不會新增加元素。

?

而刪除元素同樣分為頭,尾,中,刪除頭部元素用pop_front(),刪除尾部元素用pop_back(),而刪除中間的元素就用erase().

?

?

2.list

?

list容器實現了雙向鏈表的數據結構,數據元素是通過鏈表指針串連成邏輯意義上的線性表,這樣,對鏈表的任意位置進行插入,刪除和查找都是極快速的。

?

同樣的,往鏈表的容器中插入元素跟deque一樣,也是使用push_back,push_front,insert();

而remove()是刪除鏈表中的一個元素,值相同的都會被刪除,pop_front刪除頭元素,pop_back()刪除尾元素,erase()是刪除迭代器位置上的元素。

?

另外,list還有sort()排序函數,還有unique()方法,可以剔除連續重復元素,只保留一個。

?

?

3.stack堆棧容器

?

這個沒有什么好說的,操作主要有:push(),empty(),top()(讀取棧頂元素),pop()

?

?

4.queue隊列容器

?

也沒有什么說的。

?

?

5.priority_queue優先隊列容器

?

priority_queue優先隊列容器與隊列一樣,只能從隊尾插入元素,從隊首刪除元素,但是它有一個特性,就是隊列中最大的元素總是位于隊首,所以出隊時,并非按照先進先出的原則進行,而是將當前隊列中最大的元素出隊,這點類似于給隊列里的元素進行了由大到小的順序排序,默認規則是從小到大,當然,可以重載"<"來重新定義規則。

?

?

總結

以上是生活随笔為你收集整理的deque,list,queue,priority_queue的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。