C STL庫的基本概念

2021-10-07 20:36:08 字數 1051 閱讀 4156

vector:存放自定義資料型別,其資料結構和陣列非常相似,區別是陣列是靜態空間,而vector可以動態擴充套件(並不是在原空間之後接新空間,而是找更大的記憶體空間,然後將原資料拷貝到新空間,釋放原空間)。插入元素push_back(),刪除元素pop_back()。

list:list 是乙個雙向鍊錶,每個元素中都有乙個指標指向後乙個元素,也有乙個指標指向前乙個元素。插入元素insert(),刪除元素remove()。

deque:雙端陣列,可以對頭端進行插入和刪除操作。和vector的區別是vector對頭部的插入刪除效率低,資料量越大,效率越低,deque相對而言,對頭部的插入刪除速度會比vector快,vector訪問元素時的速度會比deque快,和兩者內部實現有關。

stack:一種先進後出的資料結構,只有乙個出口;不允許有遍歷行為。插入元素push(),刪除元素pop()。

queue:一種先進後出的資料結構,有兩個出口,允許從一端新增元素,從另一端移除元素;不允許有遍歷行為。插入元素push(),刪除元素pop()。

priority_queue:普通的佇列是一種先進先出的資料結構,元素在佇列尾追加,而從佇列頭刪除;在優先佇列中,元素被賦予優先順序。當訪問元素時,具有最高優先順序的元素最先刪除;常用於構造堆。

set:所有元素在插入時自動被排序,不允許容器中有重複的元素。插入元素insert(),刪除元素erase()。

multiset:與set的區別是允許容器中有重複的資料。

map:map內部實現了乙個紅黑樹,紅黑樹具有自動排序的功能,因此map內部的所有元素都是有序的,紅黑樹的每乙個節點都代表著map的乙個元素,使用中序遍歷可將鍵值按照從小到大遍歷出來。map中的所有元素都是pair,pair中第乙個元素為key(鍵值),起到索引作用,第二個元素為value(實值),所有元素都會根據元素的鍵值自動排序。

multimap:與map的區別是允許容器中有重複key值元素。

unordered_map:unordered_map內部實現了乙個雜湊表(也叫雜湊表,通過把關鍵碼值對映到hash表中乙個位置來訪問記錄,查詢的時間複雜度可達到o(1),其在海量資料處理中有著廣泛應用)。因此,其元素的排列順序是無序的。

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

資料庫的基本概念

一 什麼是主鍵 外來鍵 關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組 注意是組 能唯一標識一條記錄 該屬性組就可以成為乙個主鍵 比如學生表 學號,姓名,性別,班級 其中每個學生的學號是唯一的,學號就是乙個主鍵 課程表 課程編號 課程名,學分 其中課程編號是唯一的,課程編號就是乙個主鍵 ...

資料庫的基本概念

sql structure query language 語言是 資料庫的核心語言,一 sql語言的分類 sql語言共分為四大類 資料查詢語言dql,資料操縱語言dml,資料定義語言ddl,資料控制語言dcl tcl 事務控制語句 屬於dcl 1 資料定義語言 ddl 例如create drop a...