![]() |
1
12
把所有的东西都画在图纸上。
|
![]() |
2
2
定义“精通”。
|
![]() |
3
2
这有点太抽象了。然而,要越过最初的障碍,只需要对力学进行具体的探索。所以,这里有一个我用了很多的例子,以一种书呆子友好的方式展示了基本的力学原理: (以伪代码形式) 假设你正在构建一个角色扮演游戏,并且你想要跟踪你角色的统计数据。可以使用如下所示的整数数组:
等等 现在,让我们添加一个复杂性级别。也许我们想引入一种力量药剂,在10回合内增加5点力量。我们可以通过将其制作成二维数组来表示其统计方面:
等等你明白了。 所以我添加了一个第二维度来保存第一维度的详细信息。如果我想让我们的统计数据数组处理多个字符的统计数据呢?我可以通过将其制作成一个三维数组来表示:
最好创建一些常量或枚举来消除代码中的幻数:
然后我可以做:
关于数组的更多想法。。。至少在我居住的.Net世界中,我们大多数人不必在日常生活中太频繁地使用它们,因为它们正慢慢地被降级为更复杂的数据结构(如集合)的基础。 事实上,如果我要实现角色统计,实际上我不会使用数组。 然而,让你的头脑靠近它们仍然很重要,因为它们速度非常快,而且在某些情况下它们是无价的。 |
![]() |
4
1
尝试手动(无内置方法)使用数组排序(bubblesort是一个很好的方法) |
![]() |
5
1
数组是一个连续的内存块,专用于N个相同类型的项,其中N是一个表示项数的固定数字。为了扩展数组(因为数组的大小是固定的),可以使用C函数realloc(..)。在C++中,可以通过创建一个新的、更大的数组并将旧数组的内容复制到新数组(手动操作)来手动重新分配数组。 现代语言有替代数组的选项(以克服数组固有的局限性)。在C++中,可以使用标准模板库(STL)来实现此目的;STL“vector”数据类型是C++中标准数组的典型替换。与平台相关的API(如MFC)具有内置结构(如CArrayList),可提供更丰富的阵列使用体验。;-) |
![]() |
6
1
我将尝试以数组的基本形式来解释最好的数组。
[0]-“面包” [1] -“牛奶” [2] -“鸡蛋” [3] -“黄油” . .
每个索引0,1,2,3,…n保存一个特定的数据。可以看到的数据表示为字符串。现在,我不能使用以下内容: [n+1]=1000
转到矩阵或二维数组。拿一张正方形的纸,就像你用来做数学的一样,画一个笛卡尔坐标系和一些点。把坐标放在不同的纸上,旁边放一个1。例如: [0,0] = 1 [0,1] = 1
这意味着在索引[0,0],[0,1],[2,3]处我有1。陈述如下: 矩阵形式的笛卡尔系统:
我只使用了简单的数组来说明它们是什么,例如,如果你想使用3D,它的数据结构将是一个矩阵数组,也就是一个列表,它将每个笛卡尔位置保持在一个特定的高度。 10 与上面的高度和相同的点类似: [ ,0,0] - 1 [ 10 ,0,1] - 1 [ 10 如果您想掌握一种方法:获取一个简单的问题列表,并尝试使用任何类型的数组来实现它们。没有快速的方法可以做到这一点,只有耐心和练习。 |
![]() |
7
0
好的,一维数组就是一组变量。如果你有很多东西,并且你喜欢节省时间和空间,那么这很有用。在功能上,,
但现在电脑知道你在说什么,你可以写一些东西,比如:
可以很容易地扩展相同的逻辑以向阵列添加另一个维度:
我们可以说C代表一所学校,所以arrayC[2,4,6]是第二所学校六班第四名学生的年级。
三维数组使用较少,但如果必须为每个表元素保存某种状态,该怎么办?比如:
如果给定元素的某些条件为真,则第三个值为1,否则为0。当然,这是一个简单的例子,但这是更容易理解三维数组的另一种方式。 |
![]() |
John V · 是否存在单元测试无法发现的逻辑/流错误类型? 6 年前 |
![]() |
Beefster · 为什么ANSI颜色转义以“m”而不是“]”结尾? 6 年前 |
![]() |
Guillermo Gutiérrez · STR转换是如何工作的? 7 年前 |
![]() |
RudziankoÅ · 合并排序数组算法 7 年前 |
|
user8852560 · 构造函数中的验证和构造函数冲突 7 年前 |
![]() |
jav974 · 订购产品时寻找最佳价格组合的算法 7 年前 |
![]() |
hippietrail · 确定浮点数中前导零的数量 7 年前 |