C++ 匿名管道實現進程間通信:創建子進程、重定向標準輸入輸出
管道基礎 匿名管道是**單向**字節流,僅用於**父子進程**間通信(本地)。 CreatePipe 返回讀句柄 hRead 與寫句柄 hWrite,繼承屬性由
C++ 類的構造函數與析構函數全解析:默認、拷貝、移動、初始化列表
前言 構造函數負責初始化,析構函數負責清理。編譯器會隱式生成默認版本,但理解其生成規則與行為至關重要。 1. 構造函數分類 類型特徵編譯器生成條件 默認構造
連續正整數和分解:給定正整數 N,輸出所有連續正整數序列
問題描述 輸入正整數 N,找出所有長度 ≥ 2 的連續正整數序列,使其和等於 N。序列按起始數從小到大輸出,無解輸出 NONE。 例:N=15 → 1 2 3
C++ const 關鍵字核心用法速查:指針、函數、類成員全覆蓋
核心原則 const 告訴編譯器「此值不應被修改」,編譯期強制檢查。運行時內存中仍可被指針修改(未定義行為)。 1. 指針與 const 的四種組合 cha
Swift 運算符進階:重載、自定義運算符與優先級結合性
前言 Swift 賦予運算符第一類公民地位:可**重載現有運算符**、**定義全新運算符**、指定**優先級與結合性**,極大增強語言表達力。本文系統梳理語法與
C++ 設計模式:裝飾模式詳解——動態添加職責,靈活替代繼承
模式定義 動態地給一個對象增加額外職責,就擴展功能而言,裝飾模式比生成子類更靈活。屬於對象結構型模式。 動機:繼承的侷限性 窗口控件需添加滾動條、背景圖。用繼
C++ 設計模式:橋接模式詳解——抽象與實現分離,雙向獨立擴展
模式定義 將抽象部分與實現部分分離,使它們都可以獨立地變化。 動機:蠟筆 vs 毛筆 需 3 型號 × 7 顏色 = 21 支蠟筆(型號與顏色強耦合)。 改用
C++ 設計模式:組合模式詳解——樹形結構的統一接口
模式定義 將對象組合成樹形結構以表示「部分-整體」層次,使客戶對單個對象(葉子)和組合對象(容器)的使用具有一致性。 核心角色 Component:抽象構件
C++ 設計模式:建造者模式詳解——將複雜對象構建與表示分離
模式定義 將一個複雜對象的構建與它的表示分離,使得同樣的構建過程可以創建不同的表示。 動機痛點 某窗口控件 CenterWidget 構造需三步初始化:UI、
MATLAB 與 C/C++ 二進制文件讀寫全攻略:行主序 vs 列主序陷阱
核心差異:數據存儲順序 C/C++:行主序** — 矩陣按行連續存儲。 MATLAB:列主序** — 矩陣按列連續存儲。 例:2×3 矩陣 [1 2 3; 4
C++ 設計模式:適配器模式(類適配器 vs 對象適配器)完整講解
模式定義 將一個接口轉換為客戶期望的另一接口,使原本接口不兼容的類能協同工作。別名:Wrapper(包裝器)。 動機場景 系統 A 依賴 Target::re
Boost.Asio 異步網絡編程入門:核心組件與最佳實踐
背景:Reactor vs Proactor 高效網絡編程依賴 I/O 多路復用。 Reactor:用戶層同步——註冊事件,epoll_wait 等待,就緒後*
LeetCode Maximum Product of Word Lengths 解析:位掩碼優化字母查重
題目大意 給定字符串數組 words,找兩個**無公共字母**的單詞,使長度乘積最大。單詞僅含小寫字母。不存在則返回 0。 示例:["abcw&quo
C++ explicit 關鍵字詳解:抑制構造函數隱式轉換
前言 explicit 僅用於修飾**構造函數聲明**,禁止編譯器將該構造函數用於**隱式類型轉換**,避免意外的對象創建導致邏輯錯誤。 隱式轉換示例 cl
LeetCode 238 Product of Array Except Self 解析:O(n) 時間 O(1) 空間(不含輸出)
題目翻譯 1 的整數數組 nums,返回數組 output 使得 output[i] 等於除 nums[i] 外所有元素的乘積。**要求:不使用除法,時間 O
POJ 1700 Crossing River 解題報告:貪心策略最小化過河總時間
題目大意 N 人過河,唯一船最多載 2 人,划船速度由較慢者決定。求所有人過河的最短總時間。N ≤ 1000,時間 ≤ 100 秒,T ≤ 20 測試案例。
POJ 3660 Cow Contest 解題報告:傳遞閉包判斷可確定排名的牛
題目大意 N 隻牛 (N ≤ 100) 進行編程比賽,每場兩兩對決,技能高者必勝。給定 M 場比賽結果 (M ≤ 4500),無矛盾。求能**精確確定排名**的