MFC 核心架構筆記:文檔/視圖架構、物件模型與預編譯頭
MFC 宏觀類別體系 MFC 是 C++ 類別庫,程式設計師透過使用、繼承、擴充適當類別實現功能。核心架構對應: 應用角色MFC 基類典型衍生類 應用程
vector 迭代器「vector iterators incompatible」錯誤:四大成因與一個隱藏陷阱
錯誤現場 for (vector::iterator it = stcStruct.vecInfo.begin(); it != stcStruct.
C 語言生成 N 個不重複隨機數(續):O(N) 洗牌法,以空間換時間
核心思想:Fisher-Yates 洗牌變體 建立輔助陣列 temp[0..N-1] = {0, 1, ..., N-1}(有序池)。 維護 count 表示
C 語言生成 N 個不重複隨機數(0~N-1):O(N²) 簡易版
需求 產生 N 個互不相同的隨機整數,範圍 [0, N-1],用於測試演算法輸入資料。 演算法邏輯 初始化結果陣列 a[N] 為 -1(標記未填入)。 co
面試必考:浮點數字串轉浮點數完整實作(支援正負、科學計數法擴展)
題目背景 面試高頻題:實現 float StrToFloat(const char* str),將字串轉為浮點數,不得呼叫任何庫函式(atof、strtod 等
從 C 語言實戰談程式設計:Hello World 程式碼深度解析(語法、流、函式呼叫)
上期回顧 學習新語言要思考五個問題(為什麼、怎麼學、學什麼、多久、程度)。 編程流程:編輯 → 編譯 → 執行。 自行完成 Hello World 編譯執行。
六種變態 Hello World(C 語言版):極致混淆與最小化的藝術
前言 以下六個程式片段皆能在 GCC 編譯通過(最後一個需 g++),完成相同任務:輸出 Hello, World,同時將原始碼混淆至極致。展示 C 語言前處理
大數運算核心邏輯:突破硬體位寬限制的字串模擬加法實作
32 位 CPU 下 int 僅能表示約 40 億,64 位雖擴大但仍有上限。當需處理超大整數時,必須模擬人工豎式運算邏輯。本文解析大整數加法的核心思想:先逐位
鏈表逆轉與陣列逆轉的本質差異:指標操作與記憶體策略深度解析
面試經典題目「鏈表逆轉」考驗的不僅是指標操作,更是對資料結構記憶體模型的理解。本文對比連續記憶體(陣列)逆轉與單向鏈表逆轉的實作邏輯,揭示兩者在空間複雜度、操作
循環單向鏈表核心操作差異解析:列印、插入與刪除的關鍵邏輯調整
循環單向鏈表與普通單向鏈表的核心差異在於「尾節點指向頭節點」,形成閉環。這意味著遍歷終止條件從 NULL != pNode 變為 pStart != pCurr
雙向鏈表完整實作:非循環結構的增刪查改與核心邏輯解析
雙向鏈表在單向鏈表基礎上新增 prev 指標,使節點具備前向與後向導航能力。這對插入、刪除操作帶來便利(無需從頭遍歷尋找前驅),但也增加了指標維護的複雜度。本文
單向鏈表完整實作指南:從節點設計到增刪查改的核心操作
當資料在記憶體中不連續分佈時,單向鏈表透過「下一個節點指標」將離散節點串聯起來。相較於線性陣列,鏈表具備節點建立靈活、刪除無需移動資料、可透過遞迴或迴圈遍歷訪問
一步步實作線性堆疊:從結構設計到核心操作的完整指南
堆疊幾乎是程式設計的命脈,沒有堆疊就沒有函式呼叫,自然也就沒有軟體架構。作為一種「先進後出」的資料結構,堆疊的長度取決於堆疊頂端的高度。本文將帶領讀者從零開始,
環形隊列深度解析:定長數組實現 O(1) 入隊出隊、偽滿判斷、無鎖併發與工程級封裝
前言 環形隊列 (Circular/Ring Buffer) 是有界、FIFO、O(1) 入隊出隊、零內存碎片、極致緩存友好**的數據結構王者。本文從數組佈局與
線性內存池設計與實現:基於位圖的定長塊分配器,解決碎片與洩漏的工程實踐
前言 頻繁 malloc/free 導致內存碎片、分配開銷大、洩漏難查、多線程鎖競爭。本文設計一個定長塊內存池,採用位圖管理空閒塊,實現 O(1) 分配釋放、零
堆排序完整實現指南:大頂堆構建、原地排序、優先隊列應用與工程優化
前言 堆排序是原地、不穩定、最壞 O(n log n) 保證 的選擇排序進化版。本文從完全二叉樹性質映射、大頂堆構建 (自下而上 Floyd 算法 vs 自上而
歸併排序深度解析:分治合併藝術、外部排序基石與工程級實現指南
前言 歸併排序是穩定、分治、O(n log n) 最壞情況保證、非原地 (需 O(n) 輔助空間) 的經典算法。本文從核心合併邏輯、自頂向下遞歸 vs 自底向上