国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

vector,map,list,queue的區別詳細解析

2020-01-26 15:50:09
字體:
來源:轉載
供稿:網友

1。vector  (連續的空間存儲,可以使用[]操作符)快速的訪問隨機的元素,快速的在末尾插入元素,但是在序列中間歲間的插入,刪除元素要慢,而且如果一開始分配的空間不夠的話,有一個重新分配更大空間,然后拷貝的性能開銷.

2。deque (小片的連續,小片間用鏈表相連,實際上內部有一個map的指針,因為知道類型,所以還是可以使用[],只是速度沒有vector快)快速的訪問隨機的元素,快速的在開始和末尾插入元素,隨機的插入,刪除元素要慢,空間的重新分配要比vector快,重新分配空間后,原有的元素不需要拷貝。對deque的排序操作,可將deque先復制到vector,排序后在復制回deque。

3。list   (每個元素間用鏈表相連)訪問隨機元素不如vector快,隨機的插入元素比vector快,對每個元素分配空間,所以不存在空間不夠,重新分配的情況

4。set 內部元素唯一,用一棵平衡樹結構來存儲,因此遍歷的時候就排序了,查找也比較快的哦。

5。map 一對一的映射的結合,key不能重復。

6。stack 適配器,必須結合其他的容器使用,stl中默認的內部容器是deque。先進后出,只有一個出口,不允許遍歷。

7。queue 是受限制的deque,內部容器一般使用list較簡單。先進先出,不允許遍歷。

下面是選擇順序容器類型的一些準則 
1.如果我們需要隨機訪問一個容器則vector要比list好得多 。

2.如果我們已知要存儲元素的個數則vector 又是一個比list好的選擇。 

3.如果我們需要的不只是在容器兩端插入和刪除元素則list顯然要比vector好 

4.除非我們需要在容器首部插入和刪除元素否則vector要比deque好。

5.如果只在容易的首部和尾部插入數據元素,則選擇deque.

6.如果只需要在讀取輸入時在容器的中間位置插入元素,然后需要隨機訪問元素,則可考慮輸入時將元素讀入到一個List容器,接著對此容器重新拍學,使其適合順序訪問,然后將排序后的list容器復制到一個vector容器中

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 右玉县| 额济纳旗| 杭锦后旗| 罗江县| 高尔夫| 吐鲁番市| 武定县| 延津县| 兴安盟| 昌江| 昭平县| 轮台县| 涡阳县| 叙永县| 富平县| 塔河县| 阜宁县| 东海县| 南汇区| 明水县| 武穴市| 沾化县| 休宁县| 辽宁省| 聂拉木县| 孝昌县| 古浪县| 铅山县| 买车| 鹰潭市| 花莲县| 汨罗市| 邢台市| 锡林郭勒盟| 华宁县| 扶风县| 安庆市| 彭水| 汪清县| 阳谷县| 怀来县|