【C/C++】面試基礎題目收集

C++ 軟件開發面試中常見的刷題題目通常可分為以下幾大類:數據結構與算法、系統編程、面向對象設計、C++ 語言特性、并發編程等。


🧠 一、數據結構與算法(力扣/牛客經典題)

掌握 STL 和底層結構實現能力:

📌 數組 & 字符串

  • 兩數之和(LeetCode 1)
  • 三數之和(LeetCode 15)
  • 盛水最多的容器(LeetCode 11)
  • 最長不重復子串長度(LeetCode 3)
  • 字符串轉整數(LeetCode 8)

📌 鏈表

  • 反轉鏈表(LeetCode 206)
  • 判斷鏈表是否有環(LeetCode 141)
  • 合并兩個有序鏈表(LeetCode 21)
  • K 個一組翻轉鏈表(LeetCode 25)

📌 棧與隊列

  • 用兩個棧實現隊列(劍指 Offer 09)
  • 最小棧(LeetCode 155)
  • 滑動窗口最大值(LeetCode 239)

📌 哈希

  • 有效的字母異位詞(LeetCode 242)
  • 字符串中的第一個唯一字符(LeetCode 387)
  • 和為 K 的子數組(LeetCode 560)

📌 樹與圖

  • 二叉樹前/中/后/層序遍歷(LeetCode 102/94/145)
  • 判斷二叉搜索樹合法性(LeetCode 98)
  • 最小公共祖先(LeetCode 236)
  • 克隆圖(LeetCode 133)

📌 排序 & 搜索

  • 快排/歸并排序手寫實現
  • 二分查找變種(如搜索旋轉數組 LeetCode 33)
  • TopK 問題(堆或快排思想)

📌 動態規劃

  • 爬樓梯(LeetCode 70)
  • 最長回文子串(LeetCode 5)
  • 零一背包問題(經典 DP)
  • 編輯距離(LeetCode 72)

💡 二、C++ 語言特性與底層

了解 C++ 的內存模型、語法糖和 STL 容器底層實現:

📌 C++ 核心語言特性

  • 拷貝構造、移動構造、賦值操作區別
  • 智能指針實現原理(shared_ptr / unique_ptr / weak_ptr
  • 虛函數表機制、RTTI、類型轉換(static_cast 等)
  • RAII 和資源管理模式
  • 模板特化、SFINAE、完美轉發
  • lambda 表達式、bind、function

📌 STL 相關

  • vector, list, map, set, unordered_map 的底層實現
  • 自己實現簡易版 vector(支持動態擴容)
  • 自己實現 shared_ptr
  • 紅黑樹(map/set 底層)基本操作手寫(插入、刪除)

🧵 三、并發與多線程編程

大廠常問線程模型、鎖機制、任務調度類問題:

  • 用 C++ 實現線程池(支持任務提交和執行)
  • 生產者消費者模型(使用 condition_variable)
  • 原子操作與內存序(std::atomic, memory_order)
  • 實現一個讀寫鎖
  • 死鎖的產生與解決
  • 基于定時器的任務調度系統

🛠? 四、系統編程基礎題目

涵蓋文件、網絡、內存、信號等系統能力:

  • 實現 mmap/read/write 的文件讀寫工具
  • 實現一個簡易 echo server(select/epoll)
  • TCP 三次握手/四次揮手過程圖解
  • fork + pipe 實現父子進程通信
  • 實現一個自定義內存池 allocator

📦 五、面向對象設計 & 設計模式

企業級系統設計能力的基礎:

  • 電梯系統設計 / 訂票系統 / 日志系統
  • 實現觀察者模式 / 單例模式 / 策略模式
  • 模擬實現一個 LRU Cache(LeetCode 146)

? 建議刷題順序與方法

  1. 第一輪(基礎刷題): 數據結構 + 算法題精刷(100 道以內)
  2. 第二輪(C++ 特性): STL/模板/智能指針/RAII/虛函數專題刷
  3. 第三輪(系統能力): 多線程 + 網絡 + 內存 + 項目實戰題
  4. 第四輪(綜合系統設計): 設計一個線程池、異步日志、RPC 框架等

📚 配套資料推薦

  • 《Effective C++》《More Effective C++》《Effective Modern C++》
  • 《C++ Primer》《STL 源碼剖析》
  • LeetCode、牛客網 C++ 題庫
  • 《Linux 高性能服務器編程》(游雙)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83268.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83268.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83268.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

將手機網絡經USB數據線和本地局域網共享給華為AP6050DN無線接入點

引言 由于最近裝畢的新家所在的小區未能及時通寬帶,于是家中各類無線設備如何上網就成了首要要解決的問題。 鑒于家中要聯網的設備多、類型雜、支持頻段也不一,總是開手機熱點不是回事兒,于是就想著把手機網絡引至華為AP6050DN無線接入點中,讓家中所有的無線設備都能快速高…

【數據結構】圖論核心算法解析:深度優先搜索(DFS)的縱深遍歷與生成樹實戰指南?

深度優先搜索 導讀:從廣度到深度,探索圖的遍歷奧秘一、深度優先搜索二、算法思路三、算法邏輯四、算法評價五、深度優先生成樹六、有向圖與無向圖結語:深潛與回溯,揭開圖論世界的另一面 導讀:從廣度到深度,…

Flink CEP實踐總結:使用方法、常見報錯、優化與難點應對

Flink CEP實踐總結:使用方法、常見報錯、優化與難點應對 隨著實時數據分析需求的提升,Flink CEP(Complex Event Processing,復雜事件處理)成為事件流檢測中的利器。本文結合實際項目經驗,總結Flink CEP的基…

Python數據類型詳解:從字符串到布爾值,一網打盡

Python是現代編程語言中非常流行的一種,它的語法簡潔、易懂,非常適合初學者。而在Python編程中,“數據類型”是最基礎也是最重要的概念。理解這個概念,將為你之后的編程打下堅實的基礎。 1. 什么是數據類型? 在Pytho…

python打卡day42

Grad-CAM與Hook函數 知識點回顧 回調函數lambda函數hook函數的模塊鉤子和張量鉤子Grad-CAM的示例 在深度學習中,我們經常需要查看或修改模型中間層的輸出或梯度,但標準的前向傳播和反向傳播過程通常是一個黑盒,很難直接訪問中間層的信息。PyT…

中國風展示工作總結商務通用PPT模版

中國風展示工作總結商務通用PPT模版:中國風商務通用PPT 模版https://pan.quark.cn/s/42ad18c010d4

TeleAI發布TeleChat2.5及T1正式版,雙雙開源上線魔樂社區!

5月12日,中國電信開源TeleChat系列四個模型,涵蓋復雜推理和通用問答的多個尺寸模型,包括TeleChat-T1-35B、TeleChat-T1-115B、TeleChat2.5-35B和TeleChat2.5-115B,實測模型性能均有顯著的性能效果。TeleChat系列模型基于昇思MindS…

機器視覺2D定位引導一般步驟

機器視覺的2D定位引導是工業自動化中的核心應用,主要用于精確確定目標物體的位置(X, Y坐標)和角度(旋轉角度θ),并引導機器人或運動機構進行抓取、裝配、對位、檢測等操作。其一般步驟可概括如下: 一、系統規劃與硬件選型 明確需求: 定位精度要求(多少毫米/像素,多少…

兒童節快樂,聊聊數字的規律和同余原理

某年的6月1日是星期日。那么,同一年的6月30日是星期幾? 星期是7天一個循環。所以說,這一天是星期幾,7天之后同樣也是星期幾。而6月30日是在6月1日的29天之后:29 7 4 ... 1用29除以7,可以得出余數為1。而…

最佳實踐|互聯網行業軟件供應鏈安全建設的SCA縱深實踐方案

在數字化轉型的浪潮中,開源組件已成為企業構建云服務與應用的基石,但其引入的安全風險也日益凸顯。某互聯網大廠的核心安全研究團隊,通過深度應用軟件成分分析(SCA)技術,構建了一套覆蓋開源組件全生命周期管…

Docker Compose(容器編排)

目錄 什么是 Docker Compose Docker Compose 的功能 Docker Compose 使用場景 Docker Compose 文件(docker-compose.yml) Docker Compose 命令清單 常見命令說明 操作案例 總結 什么是 Docker Compose docker-compose 是 Docker 官方的開源項…

【網絡安全】輕量敏感路徑掃描工具

訂閱專欄,獲取文末項目源碼。 文章目錄 工具簡介工具特點項目結構使用方法1.環境準備2.配置目標URL3.運行掃描4.結果查看5.自定義擴展項目源碼工具簡介 該工具是一款基于Python的異步敏感路徑掃描工具,用于檢測目標網站是否存在敏感文件或路徑泄露(如配置文件、密鑰、版本控…

SpringAI+DeepSeek大模型應用開發實戰

內容來自黑馬程序員 這里寫目錄標題 認識AI和大模型大模型應用開發模型部署方案對比模型部署-云服務模型部署-本地部署調用大模型什么是大模型應用傳統應用和大模型應用大模型應用 大模型應用開發技術架構 SpringAI對話機器人快速入門會話日志會話記憶 認識AI和大模型 AI的發…

高溫爐制造企業Odoo ERP實施規劃與深度分析報告

摘要 本報告旨在為高溫爐生產企業提供一個基于Odoo 18平臺的企業資源規劃(ERP)系統實施的全面分析與規劃。報告首先系統梳理了高溫爐制造業獨特的業務流程特點,隨后詳細映射了Odoo 18各核心模塊功能與這些業務需求的匹配程度。重點分析了生產…

簡述什么是全局鎖?它的應用場景有哪些?

全局鎖是數據庫管理系統中的一種特殊鎖機制,用于對整個數據庫實例進行加鎖,使數據庫處于只讀狀態,阻止所有數據更新(DML)、數據定義(DDL)及更新類事務提交等操作。 其核心應用場景包括&#xf…

window 顯示驅動開發-呈現開銷改進(二)

對共享表面的紋理格式支持 驅動程序應支持共享資源和可共享的后臺緩沖區,以使用 DXGI_FORMAT 枚舉中的這些附加紋理格式: DXGI_FORMAT_A8_UNORMDXGI_FORMAT_R8_UNORMDXGI_FORMAT_R8G8_UNORMDXGI_FORMAT_BC1_TYPELESS\*DXGI_FORMAT_BC1_UNORMDXGI_FORMAT…

jenkins集成gitlab實現自動構建

jenkins集成gitlab實現自動構建 前面我們已經部署了Jenkins和gitlab,本文介紹將二者結合使用 項目源碼上傳至gitee提供公網訪問:https://gitee.com/ye-xiao-tian/my-webapp 1、創建一個群組和項目 2、添加ssh密鑰 #生成密鑰 [rootgitlab ~]# ssh-keyge…

barker-OFDM模糊函數原理及仿真

文章目錄 前言一、巴克碼序列二、barker-OFDM 信號1、OFDM 信號表達式2、模糊函數表達式 三、MATLAB 仿真1、MATLAB 核心源碼2、仿真結果①、barker-OFDM 模糊函數②、barker-OFDM 距離分辨率③、barker-OFDM 速度分辨率④、barker-OFDM 等高線圖 四、資源自取 前言 本文進行 …

深入解析 Redis Cluster 架構與實現(一)

#作者:stackofumbrella 文章目錄 Redis Cluster特點Redis Cluster與其它集群模式的區別集群目標性能hash tagsMutli-key操作Cluster Bus安全寫入(write safety)集群節點的屬性集群拓撲節點間handshake重定向與reshardingMOVED重定向ASK重定向…

linux centos 服務器性能排查 vmstat、top等常用指令

背景:項目上經常出現系統運行緩慢,由于數據庫服務器是linux服務器,記錄下linux服務器性能排查常用指令 vmstat vmstat介紹 vmstat 命令報告關于內核線程、虛擬內存、磁盤、陷阱和 CPU 活動的統計信息。由 vmstat 命令生成的報告可以用于平衡系統負載活動。系統范圍內的這…