int vs unsigned int vs size_t

int vs unsigned int vs size_t

从更高级的 C++ 课程开始,我们必须实现自己的 Matrix,这对于第一次练习来说很典型。我们收到了一个要处理的骨架,我只剩下一个问题了。访问类型和大小变量。

这里是一维矩阵的简单构造函数,带有一些大小检查。

Array::Array( int xSize )                                                                                     
{                   
    CHECK_MSG(xSize > 0, "Array size too small");
    array_ = new real[xSize];
    size_ = xSize;  
}

使用 size_t 或 unsigned int 代替 int 有意义吗?在阅读了 size_t 的定义后,我倾向于使用它。然而,在许多代码中,我到处都看到整数。它是类似于 java 的编码风格吗? size_t 有没有我遗漏的缺点?

编辑:

主要问题与编码风格有关。我完全理解 size_t 和 (unsigned) int 的区别,因为这里已经解释过了:unsigned-int-vs-size-t

C++ 标准库几乎肯定会为这种类型使用 std::size_t

使用 signed 类型显然是不可取的,理想情况下,您希望使用适合于拥有支持可迭代性的对象的类型。

从一开始我就建议您在 class 中使用 typedef std::size_t MySize;,主要是为了让自己面向未来。那将是最明智的选择。

任何东西的大小都可以是负数吗?不,所以使用 unsigned 代替 xSize 来更明确地表达代码的意图。

如果您需要它能够处理非常大的尺寸,请使用 size_t