【发布时间】:2018-01-18 21:01:47
【问题描述】:
在我正在做的工作中,我声明了一个长度为 N 的数组。
在我的代码中的某个时刻,某些元素之间的数据需要被删除。
如果我的初始数组是 [1,2,3,4,5],我想将其更改为 [1,2,4,5]。但我不会只做一次。该过程将涉及删除每个元素,直到没有元素留下,我可能一次取出多个元素。我这样做的原因与我试图重现的一个复杂过程有关,我认为现在没有必要进入这个过程。
我想做的是定义一个数组
a = (/ 1, 2, 3, 4, 5 /)
如果我决定删除元素 3 和 4,我可以设置一个指针(称为 p),使其指向 a:
p = (/ 1, 2, 5 /)
具体来说,p 的长度等于 a 减去移除的元素数。我想在早上不止一次这样做。重新定义一个
a = (/ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 /)
首先我删除元素 4 和 5 并指向它
p = (/ 1, 2, 3, 6, 7, 8, 9, 10 /)
然后再去掉7,8,9我可以指向a
p = (/ 1, 2, 3, 6, 10 /)
同时保持a完整。在我的脑海中,上面的 p 将通过在一个紧凑指针中同时指向 a 的前三个元素,然后是第 6 个元素,然后是第 10 个元素来创建。 p>
我知道我可以使用可分配数组获得相同的结果,但我认为指针非常有用。
【问题讨论】: