C++ 函數重載、覆蓋與隱藏深度解析:規則、特徵與代碼實例
核心概念辨析 特性重載覆蓋隱藏 作用域同一作用域(同類)父類與派生類父類與派生類 函數名相同相同相同 參數列表必須不同必須相同可同可不同 virtual 關鍵
C++ 二叉樹鏡像轉換:遞歸與層序遍歷(非遞歸)雙重實現
問題定義 給定二叉樹根節點,將其轉換為鏡像樹(左右子樹遞歸交換)。要求提供遞歸與非遞歸(層序遍歷)兩種實現。 遞歸實現 void mirrorRecursiv
C++ 二分查找(折半查找)算法詳解:原理、實現與有序性檢測
算法前提 二分查找要求數組已按升序排列。優點:比較次數少(O(log n))、查找快;缺點:插入刪除困難,適合靜態或少變動的頻繁查找場景。 核心邏輯 設定區
C++ 實現 17 進制轉 10 進制:字符串解析與錯誤處理
問題描述 輸入一個 17 進制字符串(數字 0-9 + 大寫字母 A-G,對應 10-16),輸出對應的 10 進制整數。非法字符輸出 Error Input!
C++ 歸並排序算法深度解析:原理、實現、複雜度與優化
算法概述 歸並排序 採用分治法,將數組遞歸二分至單元素,再合併相鄰有序區間,最終得到有序數組。屬於穩定排序,時間複雜度恆為 O(n log n)。 核心步驟
C++ Windows Beep 函數演奏音樂完整教程:從基礎到《天空之城》實戰
Beep 函數簡介 Windows API 提供 Beep 函數控制主板蜂鳴器發聲,原型: BOOL Beep(DWORD dwFreq, DWORD dwDu
C++ 打印兩個有序鏈表公共部分:雙指針合併式遍歷
問題描述 給定兩個遞增有序單鏈表頭指針 head1、head2,打印兩表的公共元素(值相同視為公共)。 雙指針合併邏輯 利用有序特性,類似歸併排序的合併過程:
C++ 單鏈表刪除倒數第 K 個節點:標尺法(雙指針)完整實現
問題描述 給定單鏈表頭節點與整數 k,刪除鏈表中倒數第 k 個節點(k ≥ 1)。 標尺法(雙指針)核心邏輯 定義兩指針 cur、ret 均指向頭節點
C++ 單鏈表刪除中間節點:快慢指針法詳解
問題描述 給定單鏈表頭節點 head,實現刪除鏈表中間節點的函數。若節點數為偶數,通常刪除第 n/2 個節點(靠前者)。 快慢指針核心思想 快指針 每次前進
C++ 從前序與中序遍歷序列重建二叉樹完整指南
問題描述 給定一棵二叉樹的前序遍歷與中序遍歷結果(節點值唯一),重建原始二叉樹並返回根節點。例如: 前序:{1,2,4,7,3,5,6,8} 中序:{4,7,
深入解析 C 語言專案中 .h 與 .c 檔案的關係與最佳實踐
前言:從重複代碼到模組化設計 在 C 語言開發早期,編譯器僅識別 .c(或 .cpp)檔案,並不認識 .h 檔案的存在。隨著專案規模增長,開發者發現許多 .c
C/C++ 指針操作數組的兩種核心語法:指針算術與下標訪問
前言 指針與數組在 C/C++ 中有著極深的淵源。本文總結指針操作數組的兩種等價語法——指針算術(p + i)與下標訪問(p[i]),並通過代碼演示指針可指向數
C 語言實現字符串小寫轉大寫:三種方法對比
前言 字符串大小寫轉換是 C 語言基礎操作。本文展示三種實現方式:標準庫函數、ASCII 碼位運算、查表法,並分析優劣與適用場景。 1. 方法一:標準庫 to
C++ 二維有序數組查找算法:從右上角出發的 O(m+n) 解法
前言 給定一個行遞增、列遞增的二維數組,判斷目標值是否存在。利用矩陣的有序特性,從右上角(或左下角)開始查找,每步排除一行或一列,時間複雜度 O(m+n),空間
C++ 九宮格廣度優先搜索(BFS)求最少移動步數完整實現
前言 九宮格(3×3 滑塊拼圖)是經典 BFS 入門題。本文給出完整可編譯代碼,解析狀態編碼、佇列擴展、訪問去重、不可解判定(逆序對奇偶性),並提供優化方向(雙
C++ 字符串去重並排序:高效實現與 STL 最佳實踐
前言 「去重 + 排序」是字符串處理高頻需求。本文對比手寫冒泡排序版與STL 標準庫版,指出原代碼的邏輯缺陷(大小寫硬編碼、冒泡 O(n²)、strcmp 誤用
C++ 基於 Caffe + OpenCV 從內存提取圖片特征完整實戰
前言 Caffe 官方 extract_features.cpp 僅支援從 LevelDB/LMDB 讀取,靈活性差。本文展示如何修改輸入層為 MemoryDa