如何为包含4个数字(2x2)的矩阵声明一个数组?我假设int m[4]
只允许最多4个数字。或者它是否意味着任何四个数字?我不明白其中的区别。
答案 0 :(得分:3)
在宣言中
类型 array_name [array_size];
type 是此数组存储的数据类型。索引 i 下的数组的特定值,即 array_name [ i ]可以是 type 的任何值可以代表。
在您的示例int m[4];
中声明一个包含四个整数的数组。任何这些整数的特定值可以是整数可以表示的任何值。要了解这些限制,您可以打印它们:
#include <limits>
int imin = std::numeric_limits<int>::min(); // minimum value
int imax = std::numeric_limits<int>::max(); // maximum value
答案 1 :(得分:2)
STD的使用应该简化你构建矩阵的生活:
std::vector<std::vector<int>> M(2, std::vector<int>(2));
但是如果你想使用数组:
int x[2][2];
答案 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/
答案 3 :(得分:1)
int m[4]
声明一个包含4个整数的数组。整数的索引将为0,1,2,3,而这些索引的值可以是任何整数。所以m[2] = 2003;
将数组中的第3个值设置为2003.对于2x2方面,您可能希望执行int m[2][2];
之类的操作。我认为这是声明一个大小为2的数组,包含每个点的数组,而不是整数或浮点数等等。每个点包含的数组(在这种情况下只有两个点,因此只有两个数组)每个都包含两个整数。因此,如果矩阵中的第一个值为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数组中的元素首先按行排序,然后按列排序。