荔枝 c++ 一面涼經(jīng)之解答
原帖:http://fangfengwang8.cn/feed/main/detail/5bab12927ed04646aab5c04a8299ef36
STL庫熟悉嗎?
STL 是“Standard Template Library”的縮寫,中文譯為“標(biāo)準(zhǔn)模板庫”。STL 是 C++ 標(biāo)準(zhǔn)庫的一部分,不用單獨安裝。C++ 對模板(Template)支持得很好,STL 就是借助模板把常用的數(shù)據(jù)結(jié)構(gòu)及其算法都實現(xiàn)了一遍,并且做到了數(shù)據(jù)結(jié)構(gòu)和算法的分離。例如,vector 的底層為順序表(數(shù)組),list 的底層為雙向鏈表,deque 的底層為雙端隊列,set 的底層為紅黑樹,hash_set 的底層為哈希表。
通常認(rèn)為,STL 是由容器、算法、迭代器、函數(shù)對象、適配器、內(nèi)存分配器這 6 部分構(gòu)成,其中后面 4 部分是為前 2 部分服務(wù)的
如果用clear()清空vector,空間會改變嗎?
清空數(shù)組,只會清空數(shù)組內(nèi)的元素,不會改變數(shù)組的容量大小
熟悉override嗎,重載和重寫的關(guān)系。
- 重載(overload)函數(shù)名相同,參數(shù)列表不同(參數(shù)類型、參數(shù)順序),不能用返回值區(qū)分。特點:(1)作用域相同;(2)函數(shù)名相同;(3)參數(shù)列表必須不同,但返回值無要求;特殊情況:若某一重載版本的函數(shù)前面有virtual關(guān)鍵字修飾,則表示它是虛函數(shù),但它也是重載的一個版本。作用效果:編譯器根據(jù)函數(shù)不同的參數(shù)列表,將函數(shù)與函數(shù)調(diào)用進(jìn)行早綁定,重載與多態(tài)無關(guān),與面向?qū)ο鬅o關(guān),它只是一種語言特性。
- 重寫(override)派生類重定義基類的虛函數(shù),既會覆蓋基類的虛函數(shù)(多態(tài))。特點:(1)作用域不同;(2)函數(shù)名、參數(shù)列表、返回值相同;(3)基類函數(shù)是virtual;特殊情況:若派生類重寫函數(shù)是一個重載版本,那么基類的其他同名重載函數(shù)將在子類中隱藏。作用效果:父類指針和引用指向子類的實例時,通過父類指針或引用可以調(diào)用子類的函數(shù),這就是C++的多態(tài)。
線程之間的通信方式,最高效的是哪種
線程間的通信方式包括互斥量、信號量、條件變量、讀寫鎖:
- 互斥量:采用互斥對象機制,只有擁有互斥對象的線程才可以訪問。因為互斥對象只有一個,所以可以保證公共資源不會被多個線程同時訪問。
- 信號量:計數(shù)器,允許多個線程同時訪問同一個資源。
- 條件變量:通過條件變量通知操作的方式來保持多線程同步。
- 讀寫鎖:讀寫鎖與互斥量類似。但互斥量要么是鎖住狀態(tài),要么就是不加鎖狀態(tài)。讀寫鎖一次只允許一個線程寫,但允許一次多個線程讀,這樣效率就比互斥鎖要高。
除了鎖和安全序列,怎樣使線程占用到互斥資源
同上
tcp和udp了解嗎,有什么區(qū)別。
(1)TCP需要建立一對一穩(wěn)定連接;UDP無連接
(2)TCP一對一;UDP可以一對一、一對多、多對多
(3)TCP可靠傳輸,序列號、確認(rèn)應(yīng)答、超時重傳;UDP不保證可靠傳輸,盡最大努力交付
(4)TCP頭部字節(jié)20字節(jié);UDP8個字節(jié)
(5)TCP開銷大;UDP靈活開銷小
(6)TCP提供可靠的服務(wù),適用于通訊質(zhì)量要求高的場景;UDP傳輸效率高,適用于高速傳輸和實時性要求的場景。
怎么用tcp實現(xiàn)一個http的協(xié)議?
HTTP協(xié)議采用了請求/響應(yīng)模型。客戶端向服務(wù)器發(fā)送一個請求報文,請求報文包含請求的方法、URL、協(xié)議版本、請求頭部和請求數(shù)據(jù)。服務(wù)器以一個狀態(tài)行作為響應(yīng),響應(yīng)的內(nèi)容包括協(xié)議的版本、成功或者錯誤代碼、服務(wù)器信息、響應(yīng)頭部和響應(yīng)數(shù)據(jù)。
tcp + 請求/響應(yīng)
以上答案均來自本人專欄:機器學(xué)習(xí)面試題匯總與解析(蔣豆芽面試題總結(jié))
歡迎大家圍觀:https://blog.nowcoder.net/jiangwenbo
#軟件開發(fā)2023筆面經(jīng)#這個專欄專門用于為牛友解答面經(jīng),希望能幫助到大家。