※ 引述《tinlans.bbs@whshs.cs.nccu.edu.tw (汀)》之銘言:
: 其實我看過的較佳實作方式,
: 是去 overload operator(),
: 也就是 T &operator()(size_t x, size_t y);
: 這樣就能直接以 (x, y) 存取內容,
我個人覺得 overload operator() 對這個例子來說,不太恰當。
因為 overload operator() 後,其「長相」就會很像 functor,
但一般 functor 是 stateless 的,而在 2D array 的使用上,
其行為卻不是 stateless,反而大大有關。因此,overload
operator() 反而會容易讓使用者迷惑。
: 至於 .at(x, y) 的功能一般是做成會 check boundary 的版本。
用 .element(x, y) 或 .get(x, y) 也都可以啦,這也跟上面一樣,
是 naming convension 的 issue。
--
我的微笑,堅持要有鼻子。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.21.73.227