int vs unsigned int vs size_t

时间:2015-10-21 10:53:34

标签: c++ int size-t

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

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

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

2 个答案:

答案 0 :(得分:1)

C ++标准库几乎肯定会使用std::size_t来表示这种类型。

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

从一开始我建议你在课堂上使用typedef std::size_t MySize;,主要是为了面向未来。那将是最明智的选择。

答案 1 :(得分:0)

任何东西的大小都可能是负面的吗?不,请使用unsigned xSize更明确地表达代码的意图。

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