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
和restint
)
我想尝试的是在多维数组中,第一行、最后一行、第一列、最后一列、第四行和第八行和第八列存储“*”和其余数字
我不确定是否可以使用模板或任何方法
我面临的问题是,我无法在不同的位置保留不同的数据类型(例如,数组是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..我差点忘了图形部分。非常感谢!