我正在用 C++ 编写一个矩阵类;我应该使用哪种类型作为矩阵的索引?也就是说,在以下代码中:
template <class elem_type>
class matrix
{
public:
// snip
elem_type const &operator()(INDEX_TYPE row, INDEX_TYPE column) const;
};
INDEX_TYPE 应该是什么?如果矩阵仅限于小尺寸,我应该使用可能更小的整数类型吗?
我正在用 C++ 编写一个矩阵类;我应该使用哪种类型作为矩阵的索引?也就是说,在以下代码中:
template <class elem_type>
class matrix
{
public:
// snip
elem_type const &operator()(INDEX_TYPE row, INDEX_TYPE column) const;
};
INDEX_TYPE 应该是什么?如果矩阵仅限于小尺寸,我应该使用可能更小的整数类型吗?
类型应该是无符号整数作为索引(这不是一般建议)。因此std::size_t
与标准类型兼容,是合适的。
std::size_t 可以存储理论上可能的任何类型(包括数组)对象的最大大小。
std::size_t 通常用于数组索引和循环计数。
小尺寸类型对您没有重大好处。你有内存限制吗?我不这么认为。