C++限制和大小

C++ limit and size

本文关键字:C++      更新时间:2023-10-16

如何为包含4个数字(2x2)的矩阵声明数组?我假设int m[4]只允许最多4个数字。或者它是指任意四个数字?我不明白其中的区别。

在声明中

type array_name[array_size];

type是此数组存储的数据类型。索引i下的数组的特定值,即array_name[i],可以是类型可以表示的任何值。

在您的示例中,int m[4];声明了一个由四个整数组成的数组。这些整数中任何一个的特定值都可以是integer可以表示的任何值。要了解这些限制,您可以打印它们:

#include <limits>
int imin = std::numeric_limits<int>::min(); // minimum value
int imax = std::numeric_limits<int>::max(); // maximum value

STD的使用应该简化您在构建矩阵时的生活:

std::vector<std::vector<int>> M(2, std::vector<int>(2));

但是如果你想使用数组:

int x[2][2];

int m [4]将声明一个具有4个未初始化的integer类型值的数组。请记住,这些值是零索引,这意味着要调用数组中的值,就需要调用m[0-3]。您可以通过以下命令为数组分配任何您喜欢的值:m[4] = {Value1, Value2, Value3, Value4}如果您愿意,还可以创建一个循环,为数组分配值,这有时非常有用。

请记住,数组在C++中并不常用,std::vector的使用要多得多,这是有充分理由的。http://www.cplusplus.com/reference/vector/vector/

int m[4]声明一个由4个整数组成的数组。整数的索引将是0、1、2、3,而这些索引处的值可以是任何整数。因此CCD_ 7将阵列中的第三个值设置为2003。至于2x2方面,您可能希望执行类似int m[2][2];的操作。我认为这是声明一个大小为2的数组,在每个点都包含数组,而不是int或float或其他什么。每个点包含的数组(只有两个点,所以在这种情况下只有两个数组)每个都包含两个int。因此,如果矩阵中的第一个值是32,您可以通过执行m[0][0] = 32;或更普遍的m[x][y] = value_of_(x,y);来设置它如果你提前知道数值,最快的方法可能是这样做:

int row0col0 = value at 0th row 0th column;
int row0col1 = value at 0th row 1st column;
int row1col0 = value at 1st row 0th column;
int row1col1 = value at 1st row 1st column;
int m[2][2] = {  {row0col0, row0col1},  {row1col0, row1col1} };

或等效地:

int m[2][2] = {row0col0, row0col1, row1col0, row1col1};

这被称为行主顺序:2d数组中的元素首先按行排序,然后按列排序。

相关文章:
  • 没有找到相关文章