精華區beta Programming 關於我們 聯絡資訊
單純講 array, 可以考慮 boost 的做法. boost::array<T> 是個靜態一維陣列,operator[] 傳回 reference to T. 一維陣列的範例:array<int, 10>; // 10 個 int 的 array 二維陣列的範例:array<array<int, 20>, 10>; // 10 x 20 的二維 int 陣列 用起來很簡單,假設以上述型別宣告了一個二維陣列 2DArray, 要存取時就像這樣: 2DArray[3][7] = 123; int i = 2DArray[7][1]; 用起來很直覺,就像原生的一樣。 如果嫌太難看,就用 typedef 把 array<array<int, 20>, 10> 包起來. 當然還可以自己寫一個動態大小的版本,至於要如何做 boundary check 也可以用 policy class 來決定,看要不檢查、assert 檢查、丟 exception 都好,隨你高興. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.19.235