C++ 經典面試題精選:從模板到演算法的核心考點解析
前言 C++ 面試向來以知識點廣、深度大著稱。本文整理了 12 道高頻經典面試題,涵蓋模板機制、位運算技巧、多態實現、Windows 程式設計、資料結構實作、網
C++ 面試必考 14 題深度解析:從宏定義到進程通信
題目清單與標準答案 1. 宏定義:一年秒數(忽略閏年) #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL 考點
Boost `enable_shared_from_this` 詳解:安全獲取 `shared_ptr` 的標準模式
核心痛點 在類成員函數中,如何安全地獲得指向 this 的 shared_ptr?直接寫 shared_ptr<T>(this) 會創建獨立控制塊,
POJ 2031 Building a Space Station:球體最小生成樹(Prim 算法)
問題建模 給定 n ≤ 100 個球體(球心 (x,y,z)、半徑 r),需在球之間建立通道使所有球連通。通道長度定義為兩球表面最短距離:max(0, 球心距
深度解析 `#ifdef __cplusplus` 與 `extern "C"`:跨語言鏈接的核心機制
為什麼需要 `extern C`? C++ 支持函數重載,編譯器通過Name Mangling(名字修飾)將函數簽名(參數類型、個數、命名空間等)編碼進符號名。
POJ 1265 Area:Pick 定理與格點多邊形面積計算
核心定理 邊界格點數:線段端點為格點 (x1,y1)、(x2,y2),線段上格點數 = gcd(|dx|, |dy|)(含一端點)。若 dx=0 或 dy=0
數據結構:定長順序串(SString)完整操作集 C 實現
定長串存儲結構 #define MAXSTRLEN 255 typedef unsigned char SString[MAXSTRLEN+1]; // S[
硬幣移動遊戲求解:遞歸回溯與狀態編碼的完整實現
遊戲規則建模 5 枚硬幣:3 正(A)、2 反(B),初始間隔排列 ABABA (含空位)。 每步移動 相鄰且正反不同 的兩枚硬幣(即 AB 或 BA)
對稱平方數:256 以內平方為回文數的整數查找
問題描述 找出所有 n < 256 使得 n² 為回文數(正讀反讀相同),如 11²=121。無輸入,直接輸出滿足條件的 n,每行一個。 算法邏輯 遍歷 i
C++ 對象模型深度解析:各類對象的內存分配、構造與析構全生命周期
內部類型 vs 類對象的本質差異 內部類型(int 等)只有內存分配/釋放;類對象還必須調用 構造函數 初始化、析構函數 清理。編譯器為此插入隱式代碼,形成完整
boost::enable_shared_from_this 實現原理深度剖析:weak_ptr 觀察者模式與共享所有權傳遞
使用場景 類對象由 shared_ptr 管理時,成員函數需將 自身 作為 shared_ptr 傳遞給其他函數。直接傳 this 會導致裸指針與智能指針共存,
KM 算法詳解:帶權二分圖最大權完美匹配的頂標與松弛量優化
問題定義 完全二分圖 G=(X∪Y, X×Y),邊權 w(x,y)。求 完美匹配 使權值和最大。KM 算法將最大權匹配轉化為 相等子圖 中尋找完美匹配。 核心
HDU 1037 Keep on Truckin:貨車通行高度判斷(入門水題)
問題描述 168,輸出 NO CRASH;否則輸出 CRASH X,X 為第一個導致碰撞的涵洞高度(即 ≤ 168 的最小值)。 算法邏輯 讀入三個整數
HDU 2111 Saving HDU:分數背包問題的貪心解法
問題建模 背包容量 V,n 種寶物,每種單價 p_i、體積 m_i(p_i, m_i < 10)。寶物可分割,分割後價值與體積成正比。求最大總價值。此即
iOS NSDate 與 NSDateFormatter 完整指南:格式化、解析與時區陷阱
核心轉換 API // NSDate → NSString NSDateFormatter *fmt = [[NSDateFormatter alloc] i
iOS UITableView Header 嵌入 UITextField:自定義 sectionHeaderView 實戰
實現步驟 實現 tableView:heightForHeaderInSection: 返回 header 高度(如 30pt)。 實現 tableView:
Qt 無邊框視窗實現與拖拽移動:重寫鼠標事件完整指南
移除標題欄 一行代碼:setWindowFlags(Qt::FramelessWindowHint);。但會導致失去系統原生拖拽移動能力。 重寫三大鼠標事件實