我知道这听起来很容易。不是为了这个任务。
想象一下以下场景:您有一个正在运行的连接,以及一个名为 example 的列表。你会得到一些带有常数 x 的数据,它总是从 1 开始,然后一直增加,直到连接关闭。您需要一些围绕该数字的数据,并将其存储在该数字位置的列表中。所以example[x-1]
。好的,这样就解决了基本问题。
这不能解决的问题是,如果连接给了你一个命令来删除以前存储的一些数据,因为它不再需要了。假设此时列表中有 10 个项目,您需要在位置 3、5 和 6 处删除。所以现在,示例在 7。x 现在是 11,您插入一些数据,现在example
的长度为 8。此时,exmaple[x-1] != 11
。所以现在,我们有碎片。
问题是这样的。该连接将(但不是按固定顺序)为您提供一些其他数据。该数据也将具有与 相同的数字x
,但我们会说它是y
。这些数据需要放在一起(我们只是说为了这个示例的目的需要添加的 int,尽管我们实际上是在填充一个类中缺少的东西)x
。y
但在数据序列的稍后点,但您现在不再有 x-1 将数据的 2 部分放在一起。现在的问题是,因为您无法设置example[x]
并且始终将其完全放在位置x
in example
,所以现在在运行时无法同时匹配位置x
和y
。
我的问题是,有没有像 C++ 中的某种方式,你可以怎么做example[x] = data;
,无论位置如何,x
取决于列表中发生的变化,例如删除项目。如果这不可能,那么我将努力计算example
列表位置的公式,以便它始终可以匹配。