我想知道我的数组被填充到哪个索引。我知道一种方法,我将在循环中维护一个临时变量并保持更新,这将最终确定大小。
我想知道除了这种方法之外,他们还有其他方法来完成这项任务吗?最好是 O(1)(如果可能)或任何比 O(n) 更好的东西。
最佳答案
没有通用的方法可以做到这一点,因为数组的所有元素总是都包含一个值。
几种常见的处理方法:
- 按照您在帖子中的建议自行跟踪“有效”元素。
- 具有标记“缺失”值的标记元素并检查每个元素 - 具有此类值的第一个元素将标记“已填充数组的结尾”。对于引用类型,您可以使用
null
,对于其他类型,有时会有很少使用的特定值,可以将其视为“缺失” - 即整数类型的最大值。
第二种方法是 C 风格字符串的实现方式——它是最多 0
个字符的字符数组——所以你总是可以计算字符串的长度,即使它存储在更长的数组中字符数。
关于c++ - 确定数组索引到哪个数组被填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998521/