2013-11-02 56 views
1

我正在用C++編寫一個矩陣類;我應該使用哪種類型的索引到矩陣中?也就是說,在下面的代碼中:用戶定義容器的索引類型

template <class elem_type> 
class matrix 
{ 
public: 
    // snip 
    elem_type const &operator()(INDEX_TYPE row, INDEX_TYPE column) const; 
}; 

INDEX_TYPE應該是什麼?如果矩陣限制爲小尺寸,我應該使用可能更小的整數類型嗎?

+0

嘗試'unsigned int'或'int' – hamon

+0

INDEX_TYPE應該是'unsigned int'。使用'signed int'允許用戶使用'my_matrix(-1,3)',這在數學中並不意味着什麼。 –

回答

1

該類型應該是無符號整數作爲索引(這不是一般性的建議)。因此與標準類型兼容的std::size_t是合適的。

std :: size_t可以存儲任何類型(包括數組)的理論上可能的對象的最大尺寸。

std :: size_t通常用於數組索引和循環計數。

小尺寸型號對您沒有任何好處。你有內存限制嗎?我不這麼認爲。