面試準備c (二)

2021-10-03 14:30:06 字數 930 閱讀 8246

stl容器和底部原理

二倍增長的動態陣列,線性連續空間,有容量限制。每次擴大到二倍時要重置所有迭代器,開銷很大

deque(雙端佇列)

雙向開口的儲存空間分段連續的資料結構,每段資料空間內部是連續的,而每段資料空間之間則不一定連續

正因為段之間不連續,所以他整體也是不連續的,不用擔心容量問題

list(環狀雙向鍊錶)

隨機訪問很慢

stack基於list or duque

queue基於list or deque

set(集合)  multiset(多重集合)     #include

紅黑樹實現,set中元素都是唯一的,而且預設情況下會對元素自動進行公升序排列

內部以鍵值對方式儲存,鍵值與實值相同,set的鍵值不允許更改,也不允許存放兩個實值相同的元素

multiset允許重複的鍵值,也採用了紅黑樹

map(對映)multimap(多重對映)   #include

key值唯一,即插入時不能鍵值重複,紅黑樹的變體,資料按照排序規則插入,不能指定位置插入

可以修改實值但不能修改key

multimap允許重複的鍵值

同理可得

hash_set         hash表,無序,不重複

hash_multiset   hash表,無序,可重複

hash_map       hash表,無序,不重複

hash_multimap  hash表,無序,可重複 

紅黑樹根節點是黑色

紅色節點的子節點一定是黑色(也意味著任一條路經,之後黑黑和紅黑交替兩種可能,沒有紅紅)

從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點

C 面試準備 二

gcc 和 g 的區別 gcc與g 都是gnu 組織 的乙個編譯器。gcc與g 都可以編譯c 與c 但是 字尾為.c的,gcc把它當做c程式,而g 當做是c 程式 字尾為.cpp的,兩者都會認為是c 程式。編譯階段,g 會呼叫gcc,對於c 兩者是等價的,但是因為gcc命令不能自動和c 程式使用的庫...

2012面試準備 2012 10 26面試準備

c 1 什麼純虛函式?首先,二者申明不一樣。virtual void test void 虛函式 virtual void test void 0 純虛函式 其次,如果乙個類包含了乙個純虛函式 哪怕只有乙個是純虛函式 那麼它就是乙個抽象類 就是不能生成具體的物件!但如果類中只包含虛函式,那麼是可以定...

《面試準備》C 工廠模式

參考 簡單工廠模式 在工廠類做判斷,從而建立相應的產品,當增加產品時需要修改工廠類。簡單工廠模式 列舉 enum cartype 抽象類 多型 提高基類 class car 具體類 產品1 class bencicar public car 工廠方法模式抽象工廠類,只提供乙個介面,通過子類去擴充套件...