容器的存儲分為順序存儲和鏈式存儲
## 一、順序存儲結構
? ?從數據結構的角度來說順序儲存結構的存儲空間固定,可擴展性差,但是如果數據元素個數已知,較鏈式存儲節省空間。
? ?它的優點是隨機讀取任意一個元素(因為元素時順序存儲的,所以元素的存儲位置之間有一定的關系)但是順序存儲的缺點是刪除、插入操作需要花費很多時間在移動元素上。
? ?STL中的vector就是典型的順序存儲結構。
## 二、鏈式存儲結構
對于鏈式存儲而言,插入和刪除元素開銷小,操作簡便,最大特點就是插入、刪除運算方便,可擴展性強。STL中list、map就是典型的鏈式存儲結構。
? ? ? ?下面是它的特點:
? ? ? ?1.比順序存儲結構的存儲密度小 (每個節點都由數據域和指針域組成,所以相同空間內假設全存滿的話順序存儲比鏈式存儲能存得更多)。
? ? ? ?2.邏輯上相鄰的節點物理上不必相鄰。
? ? ? ?3.插入、刪除靈活 (不必移動節點,只要改變節點中的指針)。
? ? ? ?4.查找結點時鏈式存儲要比順序存儲慢。
? ? ? ?5.每個結點是由數據域和指針域組成。
## 三、結論
??綜上所述,如果元素個數已知,且插入刪除較少的可以使用順序結構,而對于頻繁有插入刪除操作,元素個數未知的,最好使用鏈式結構,編程時可結合要處理的數據的特點選擇或設計數據結構的。
- 前言
- C++讀取配置文件
- 結構體內存對齊后所占內存空間大小的計算
- do{}while(0)的妙用
- Cocos2dx實現翻牌效果(CCScaleTo與CCOrbitCamera兩種方式)
- C++的error LNK2019: 無法解析的外部符號編譯錯誤
- Java使用JNI調用C++的完整流程
- strupr與strlwr函數的實現
- strcat函數實現
- Windows上VS使用pthread重溫經典多線程賣票(pthreads-w32-2-8-0-release.exe)(windows上使用pthread.h)
- pthread的pthread_join()函數理解實驗
- 順序存儲結構和鏈式存儲結構的選擇
- C語言冒泡排序
- VS看反匯編、寄存器、內存、堆棧調用來學習程序設計
- 快速排序
- C++的構造函數初始化列表
- fatal error C1083: 無法打開包括文件: “SDKDDKVer.h”: No such file or directory
- C++實現簡單的String類