C/C++ 詞法分析「最大吞噬原則」深度解析
什麼是「最大吞噬原則」? 在 C/C++ 編譯器的詞法分析階段,當掃描器遇到可構成多字符運算符的字符序列時,會遵循 「最大吞噬原則」:儘可能多地讀取字符,組成最
C語言判斷變量是有符號數還是無符號數的方法詳解
前言 在 C/C++ 程式設計中,理解有符號數與無符號數的區別至關重要,它直接影響數值的表示範圍、運算邏輯以及邊界條件的處理。本文將從基本概念出發,深入探討如何
C/C++設計模式全景實戰:23種經典模式代碼詳解與應用場景
C/C++設計模式全景實戰匯總 本文系統整理了Gang of Four(GoF)23種經典設計模式在C++中的完整實現代碼,並結合生動場景類比(如追MM、點餐、
LeetCode 題解:Word Pattern 單詞模式匹配——雙向映射哈希表解法
LeetCode 題解:Word Pattern (單詞模式匹配) 題目描述 給定模式字串 pattern (僅小寫字母) 和字串 str (單詞以單空格分隔
BZOJ 1218 [HNOI2003] 激光炸彈:二維前綴和 + 暴力枚舉 最優解法詳解
激光炸彈問題:二維前綴和優化區域求和 一、題目大意 地圖範圍:座標 [0, 5000] × [0, 5000]。 N ≤ 10000 個目標,每個有座標 (
C++ Primer 學習筆記 46:STL 剖析一——泛型程式設計、STL 六大組件與關係
C++ Primer 學習筆記 46:STL 概論與六大組件 一、泛型程式設計 相同邏輯/算法處理不同型別資料 將算法從資料結構抽象出來,實現通用化 C++
BZOJ 3688 折線統計:二維 DP + 樹狀數組優化解題報告
BZOJ 3688 折線統計 解題報告 題目大意 平面上 n 個點 (x_i, y_i),選若干點構成集合 S,按 x 排序連接形成折線。連續上升/下降段數為
C++ Primer 學習筆記:vector 源碼深度剖析與記憶體分配器 Allocator 機制
std::vector 內部機制全解析:從初始化到動態擴容與 Allocator 協作 std::vector 是 C++ 最核心的序列容器,底層為動態陣列。本
C++ Primer 學習筆記 44:類模板與非類型模板參數詳解
C++ Primer 學習筆記 44:類模板與非類型模板參數 一、類模板基本概念 類模板將類別定義中的資料型別參數化,如 vector<int>、
C++ Primer 學習筆記 45:模板進階——缺省模板參數、成員模板與 typename 關鍵字
C++ Primer 學習筆記 45:模板進階特性 一、缺省模板參數 模板參數可提供預設值,如 Stack 內部容器類型預設為 deque: template
面向對象 vs 基於對象編程:以 Thread 類為例的風格對比
面向對象 vs 基於對象編程風格對比 核心差異 特性面向對象 (OO)基於對象 (OB) 封裝✓✓ 繼承✓✗ 多態✓ (虛函數)✗ (無繼承無多態) 介面耦
BZOJ 2186 【SDOI2008】沙拉公主的困惑:歐拉函數+線性篩+乘法逆元解題報告
BZOJ 2186 【SDOI2008】沙拉公主的困惑 解題報告 題目大意 鈔票編號範圍 1 到 N!,僅發行編號與 M! 互質的鈔票。求 1 到 N! 中與
C++ 實現 Java synchronized 關鍵字:RAII 鎖與宏語法糖完整方案
C++ 實現 Java synchronized 關鍵字 背景動機 Java 的 synchronized 關鍵字提供塊級同步: synchronized(s
C++ 技巧:std::list 遍歷中刪除元素並安全繼續遍歷
std::list 遍歷中安全刪除元素的正確姿勢 核心規則 std::list::erase 返回指向被刪除元素下一個位置的迭代器。利用此特性可在遍歷中安全刪
C/C++ 實戰:Boost 陣列、手寫 Vector/List 容器與哈希表實現
Boost.Array 快速上手 #include boost::array arr = {1,2,3,4,5,6,7,8,9,10}; for (auto
C++ 異常處理:堆疊展開與資源管理核心原則
堆疊展開流程 拋出異常 → 暫停當前函數; 尋找匹配的 catch:先檢查所在 try 塊,再逐層向外退出函數; 退出函數時,**依序呼叫區域物件的析構函數*
算法題解:T-shirt 設計元素選擇——最大化滿意度總和
算法題解:T-shirt 設計元素選擇 題目大意 N 人對 M 個設計元素評分,需選出 K (≤M) 個元素使總滿意度最大。多組測試資料,輸出建議元素索引(從