紅黑樹的特性與其在c++ stl中的應用
map 、set、multiset、multimap的底層實現都是紅黑樹,epoll模型的底層資料結構也是紅黑樹,linux系統中cfs程序排程演算法,也用到紅黑樹。
紅黑樹的特性:
根節點是黑色
不能有兩個連續的紅節點
空指標是黑色
從任意乙個結點出發,到後代中空指標的路徑上,均包含相同數量的黑色結點。
stl記憶體分配
stl map
stl 相關: stl 中的記憶體管理(allocator)的原理, 以及如何讓它執行緒安全。
stl 原始碼中的 hash 表的實現
stl 的 unordered_map 和 map 的區別
介紹一下 stl 原始碼的內容。
vector分配記憶體的方式
先申請一定的大小的陣列, 當陣列填滿之後,另外申請一塊原陣列兩倍大的新陣列, 然後把原陣列的資料拷貝到新陣列, 最後釋放原陣列的大小。 詳情參考 《stl原始碼剖析(侯捷)》。
問stl庫,vector的記憶體管理,deque的記憶體管理,list的排序
stl也問了一些問題:比如vecotr 和list 的區別,適用情況
vector的擴容機制,問到了原始碼層次。
4.stl中的迭代器失效問題
11.map /set容器的實現原理(紅黑樹知識+stl容器內部原理)
stl中仿函式有什麼用,和函式指標有什麼不同,哪個效率高
常見面試題
1.get和post的區別 1 本質區別 get是向伺服器請求資料,post是向伺服器傳送資料。2 伺服器獲取值的方式 get方式提交的資料,伺服器端使用request.querystring獲取變數的值。post方式提交的資料,伺服器端使用request.form獲取資料。3 安全性 get安全效...
常見面試題
1 一行 實現1 100之和 lst i for i in range 1,101 print sum lst 2 如何在乙個函式內部修改全域性變數?在函式內部新增 global 變數名 這樣就可以在本地作用域定義全域性作用域了 name 大明 def eat name1 global name n...
常見面試題
dns解析 發起tcp三次握手,並建立tcp連線 發起http請求 伺服器相應http請求並得到html 伺服器解析html 並對頁面進行渲染然後返回給使用者 首先先進行ioc容器的初始化 ioc 容器的初始化過程分為三步驟 resource 定位 beandefinition 的載入和解析,bea...