很多 C++ 學習者對指針和迭代器「談虎色變」,實則是缺乏正確的心智模型與系統性練習。本文提供三階段學習路徑,配合經典資源推薦,助你徹底掌握內存管理核心技能。
int* p = &a; 中,p 是地址,*p 是該地址處的值。vector::iterator it = v.begin(); 行為類似 int* p = &v[0]; 但攜帶容器類型信息。unique_ptr、shared_ptr 核心邏輯(引用計數、控制塊、刪除器),理解 RAII 與所有權轉移。Vector、List 及其迭代器(輸入/前向/雙向/隨機訪問分類),體會迭代器失效規則。必讀經典:
重點攻克:
allocator 的 allocate/deallocate/construct/destroy 分離設計iterator_traits 支持算法泛化shared_ptr 控制塊線程安全引用計數實現(原子操作 + 弱引用)指針是 C++ 賦予程序員直接操控內存的權力,也是責任。
現代 C++ (C++11/14/17/20) 通過智能指針、容器、算法、範圍-based for、結構化綁定,已將 90% 的裸指針場景封裝為安全抽象。
學習指針,不是為了天天寫new/delete,而是為了理解底層、排查疑難雜症、在必要時突破封裝極限。
侯捷 STL 源碼剖析視頻筆記 (CSDN) —— 配合書籍食用效果最佳。