STL重點回顧

2021-06-25 21:05:06 字數 1117 閱讀 8699

1.兩級空間配置器

2.vector:

是個動態陣列,隨著元素的加入,它的內部機制能夠自行的擴充空間容納新元素;

但是當使用insert和erase時會出現迭代器失效問題

他們的建立和銷毀都是用construct和destory函式

因為vector是連續儲存的,所以erase時,會呼叫泛型函式copy做大量的調整;insert時,會將插入元素的個數於備用空間相比較(注意當備用空間夠,則比較插入個數y於原有個數x,如果插入少,則先原有個數的前y個元素移動至尾端,然後將x-y移動至其後面,最後新增,如果插入個數x大於原有個數y,先將x-y個元素填充至最終位置上,然後將原有的個數放置到尾端,最後填充這y個元素)

3.list:是帶頭結點的雙向鍊錶

insert和erase不存在迭代器失效問題,list的insert於erase的方法是不同的,因為不是連續儲存的他們

5.stack:是乙個先進後出的資料結構,它只有乙個開口,利用介面卡模式,預設下將deque作為底層容器,然後封裝一些方法來對模擬棧操作

stack沒有迭代器,因為它不提供遍歷功能;

stack也可以用list作為底層容器

6.queue:是乙個先進先出的資料結構,其他跟stack相似

7.priority_queue:預設時用大根堆完成,,將優先順序作為堆排序的關鍵值

8.slist是乙個單向鍊錶,所耗用的空間小,某些操作更快

插入,刪除會帶來迭代器失效的問題

9.關聯式容器:

set:它的鍵值就是實值,實值就是鍵值,利用紅黑樹實現的

map:所有的元素都是pair,同時擁有實值和鍵值,pair的第乙個元素視為鍵值,第二個視為實值,map和set不允許兩個元素擁有相同的鍵值

multiset和multimap:允許鍵值重複,因為他們插入操作採用的是低層機制紅黑樹的insert_equal不是insert_unque,紅黑樹和平衡二叉樹有自動調整的功能,hashtable沒有

hashtable:是一種字典結構,用空間換時間,提供常數時間的基本操作,但是hash表的設計離不開雜湊函式,但是雜湊函式會帶來碰撞問題,目前解決碰撞問題的方法有:線性探測,二次探測,開鏈法

hash_set是以hashtable作為底層機制的,他們的使用方式跟set和map相同

NA重點回顧

arp位址解析協議 arp的分類 正向arp 逆向arp arp 無故arp。作用 1 正向arp 知道對方的ip不知道對方的mac位址時,傳送arp,獲取對方的mac位址 2 逆向arp 知對方的mac不知道ip,獲取對方的ip 2 無故arp 往外公布自己的mac,和防止位址重複。3 arp 向...

爬蟲重點回顧

閱讀網頁和解碼 1 建立請求 2 開啟目標網頁 3 閱讀網頁 4 解碼 5 找關鍵 分析 6 根據規律使用正規表示式 7 檔案讀寫 請求的時候,可以使用預設的request請求 當然也可以自定義請求物件 request.request 在自定義的請求物件中可以加入請求頭 請求頭的作用是反爬蟲,模擬不...

html重點回顧

src alt 乙隻恐龍頭部和軀幹的骨架,它有乙個巨大的頭,長著鋒利的牙齒。width 400 height 341 曼徹斯特大學博物館展出的乙隻霸王龍的化石figcaption figure html5 的和元素,它正是為此而被創造出來的 為提供乙個語義容器,在標題和之間建立清晰的關聯 這個元素 ...