C++程序員應掌握數(shù)據(jù)結(jié)構(gòu)、編譯原理、操作系統(tǒng)、離散數(shù)學等理論方面的基礎知識。此外,在編程實踐中,還需具備一些具體技術(shù)要點,新進 C++程序員應在一年內(nèi)完成學習“basic”類別知識點,兩年內(nèi)完成學習“advance”類別知識點,三到四年內(nèi)完成學習“expert” 類別知識點。
一、語言相關
1、基礎(Basic)
(1)變量與基本類型:語言內(nèi)置類型、常量、變量的初始化、變量的作用域、變量的
限定符、變量引用、枚舉;
(2)typedef 和#define;
(3)數(shù)值與指針:數(shù)組定義與初始化、多維數(shù)值、指針操作;
(4)表達式:算術(shù)/邏輯計算、位運算、優(yōu)先級、類型轉(zhuǎn)換;
(5)語句:簡單語句、聲明/定義語句、復合語句、條件/循環(huán)控制語句、異常處理語
句;
(6)函數(shù):函數(shù)聲明、參數(shù)傳遞、堆棧概念、函數(shù)重載;
(7)標準IO:條件狀態(tài)、緩沖區(qū)、文件流、字符流、本地化;
(8)類和數(shù)據(jù)抽象:類的定義與聲明、類的構(gòu)造函數(shù)、靜態(tài)成員、拷貝構(gòu)造函數(shù)、操
作符重載、類型轉(zhuǎn)換;
(9)面向?qū)ο缶幊蹋簲?shù)據(jù)(封裝)抽象、繼承、多態(tài)(動態(tài)綁定);
2、進階(Advance)
(1)模板與泛型編程:模板定義、實例化、類模板成員、重載、特化;
(2)智能指針:auto_ptr、shared_ptr、scoped_ptr;
(3)STL 容器:順序容器(vector、list、deque、queue、priority_queue、string)和關
聯(lián)容器(map、set、multimap、multiset);
(4)STL 算法:迭代器、算法;
(5)常用復雜數(shù)據(jù)結(jié)構(gòu):hash_map、boost.any、boost. array、boost. regex、boost. variant、
boost. multi_array、boost. pointer_container;
3、高級(Expert)
(1)高級泛型編程:表達式模板、模板元編程、Concept 編程;
(2)程序架構(gòu),內(nèi)存池,線程池;
(3)高級抽象:boost.mpl、boost.lambda、boost.fusion、boost.proto;
(4)范式應用:boost.spirit;
(5)應用程序庫:boost.asio 、boost.graph、blitz++、Loki、CGAL、uBLAS;
二、系統(tǒng)相關
1、基礎(Basic)
(1)Windows API 之基礎服務:文件系統(tǒng)、注冊表、內(nèi)存管理、DLL、多媒體;
(2)Windows API 之內(nèi)核對象:句柄、信號、線程、進程、互斥、事件、文件映射、
命名管道、郵槽、計時器、完成端口;
(3)Windows API 之圖形設備接口:設備上下文、打印、字體、筆/刷、路徑、區(qū)域、
位圖;
(4)Windows API 之圖形用戶界面:窗口、標題、菜單、狀態(tài)欄、消息、圖標、按鈕、
編輯框、組合框、列表框、滾動條、通用對話框;
(5)環(huán)境配置及Shell 編程:環(huán)境變量、右鍵菜單、屬性、關聯(lián);
(6)Socket 編程;
(7)Web 相關API;
2、進階(Advance)
(1)MFC/ATL:文檔視圖結(jié)構(gòu)、對話框、通用控件、OleDB、WinInet;
(2)COM、自動化、ActiveX:Office 開發(fā)、IE 插件、VBA;
(3)高級圖形系統(tǒng):OpenGL、DirectX;
(4)二次開發(fā):ObjectArx;
三、計算相關
1、計算機圖形學
(1)向量:點積、叉積、求模、單位化、復合運算;(basic)
(2)矩陣:算術(shù)運算、平移/旋轉(zhuǎn)/縮放/錯切等變換、求逆、特征值;(basic)
(3)四元組合歐拉角:與其他表示轉(zhuǎn)換;(advance)
(4)參數(shù)曲線/曲面:貝塞爾、(非)均勻有理樣條;(advance)
(5)三維幾何體的構(gòu)造與描述;(expert)
2、計算幾何
(1)幾何查找與判斷:點與線、線與線、點與多邊形;(basic)
(2)多邊形:簡單多邊形、凸多邊形、多邊形三角剖分;(advance)
(3)凸殼及其應用;(advance)
(4)Voronoi 圖/三角剖分及其應用;(advance)
(5)多邊形的交與并;(expert)
(6)平面圖;(expert)
3、數(shù)值計算
(1)數(shù)值計算的三大任務:求值、解方程(組)、函數(shù)逼近;(basic)
(2)數(shù)值計算的誤差、適定性、穩(wěn)定性;(basic)
(3)解線性方程組直接方法:Gauss 消元法、三角分解法;(basic)
(4)解線性方程組一般迭代方法:基本迭代、Jacobi 迭代、G-S 迭代、SOR/SSOR 迭代;
(advance)
(5)解線性方程組的變分迭代法:共軛梯度、預處理共軛梯度法;(expert)
(6)解非線性方程組迭代方法:Newton 迭代法、Newton-Raphson 迭代法、同倫算法;
(expert)
(7)求解矩陣特征值:乘冪法與反乘冪法、Rayleigh 商迭代法、QR 法、Krylov 子空間
法;(expert)
(8)插值:多項式插值、樣條插值;(advance)
(9)數(shù)值積分:Simpson 公式、Gauss 積分;(basic)
(10)解常微分方程:歐拉法、Runge-Kutta 法;(advance)
(11)解橢圓方程:有限單元法、有限差分法、邊界元法;(expert)