Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;不同位置具有不同数据类型的多维数组_C++ - Fatal编程技术网

C++ C++;不同位置具有不同数据类型的多维数组

C++ C++;不同位置具有不同数据类型的多维数组,c++,C++,我创建了自己的流程图,我正在遵循它。对我来说,一个问题是我不能在不同的地方保留不同的数据类型(例如,数组是arr[4][4],然后在arr[3][1]和arr[4][3]中,我想要char和restint) 我想尝试的是在多维数组中,第一行、最后一行、第一列、最后一列、第四行和第八行和第八列存储“*”和其余数字 我不确定是否可以使用模板或任何方法 我面临的问题是,我无法在不同的位置保留不同的数据类型(例如,数组是arr[4][4],然后在arr[3][1]和arr[4][3]中,我需要char和

我创建了自己的流程图,我正在遵循它。对我来说,一个问题是我不能在不同的地方保留不同的数据类型(例如,数组是
arr[4][4]
,然后在
arr[3][1]
arr[4][3]
中,我想要
char
和rest
int

我想尝试的是在多维数组中,第一行、最后一行、第一列、最后一列、第四行和第八行和第八列存储“*”和其余数字

我不确定是否可以使用模板或任何方法

我面临的问题是,我无法在不同的位置保留不同的数据类型(例如,数组是arr[4][4],然后在arr[3][1]和arr[4][3]中,我需要char和rest int)

数组只有一种元素类型。它的所有元素都具有该类型,没有其他类型

<> > <代码> char 是整数数据类型,并且您可能看到的每个C++实现都可以容纳<代码> char <代码>中的每个可能的值。因此,实际上,在
int
类型的数组元素中存储
char
的值是安全的。如果您已经这样做了,并且随后没有修改该数组元素,那么您还可以将其读回并将值存储在
char

(顺便说一句,注意一个
char
和一个
char
数组之间有很大的区别,比如C用于字符串。我们有时会在这里看到混淆。)


不过,更一般地说,您应该选择适当的数据类型。如果要将非相关数据视为一个单元,那么应该声明一个类来包含它,而不是使用数组。

你几乎肯定不需要这样做。因此,数组是相同类型的多个对象的集合,因此如果没有技巧,你不能也不应该这样做。因为这些东西不一样,所以将它们分离到不同的容器中,并用它们创建一个结构/类。另外:与简单的C数组相比,更喜欢vector或其他STL容器。您能再解释一下吗?使用
arr[4][3]
索引定义为
arr[4][4]
的数组会打破数组边界。有效索引为
0..3
。创建类/结构数组或联合数组(更紧凑)。。或者使用std::variant(因为c++11或14不记得了)。好吧,我正在尝试制作一个soduku游戏。我尝试了一款简单的无国界索多库游戏,效果不错,但它看起来有点难理解,所以我想保留borders,让它看起来更好。这就是为什么我将游戏的显示作为一个整体创建为一个二维阵列,其中我计划将第一行、最后一行、第一列和最后一列作为某种符号作为边框,类似地,用于将游戏中的3x3方形框作为边框sodoku@PrasinShrestha我的建议是不要混淆数据和显示数据的方式。绘图方法应添加边框。在数据数组中保留边框只是浪费内存,因为它们可能永远不会更改数据数组中的值或位置array@tobi303thx..我差点忘了图形部分。非常感谢!