c++ - 确定数组索引到哪个数组被填充?

标签 c++ arrays

我想知道我的数组被填充到哪个索引。我知道一种方法,我将在循环中维护一个临时变量并保持更新,这将最终确定大小。

我想知道除了这种方法之外,他们还有其他方法来完成这项任务吗?最好是 O(1)(如果可能)或任何比 O(n) 更好的东西。

最佳答案

没有通用的方法可以做到这一点,因为数组的所有元素总是都包含一个值。

几种常见的处理方法:

  • 按照您在帖子中的建议自行跟踪“有效”元素。
  • 具有标记“缺失”值的标记元素并检查每个元素 - 具有此类值的第一个元素将标记“已填充数组的结尾”。对于引用类型,您可以使用 null,对于其他类型,有时会有很少使用的特定值,可以将其视为“缺失” - 即整数类型的最大值。

第二种方法是 C 风格字符串的实现方式——它是最多 0 个字符的字符数组——所以你总是可以计算字符串的长度,即使它存储在更长的数组中字符数。

关于c++ - 确定数组索引到哪个数组被填充?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29998521/

相关文章:

PHP JSON_Encode() 使用 UTF-8 返回 NULL(数组中的数组)

无法为文件变量赋值

mysql - 如何在 Laravel 中循环并输出嵌套数组

c - C中使用anArray++等表达式时数组和指针的区别

c++ - setData() 和 insert Rows() Qt 模型 View

c++ - 将堆栈实现为链接结构的解码器

c++ - 使用 constexpr 初始化 std.array 中的对象

c++ - 无法通过 VIM 运行链接脚本

c++ - 将 oracle 表动态导出到平面文件

javascript - Array.find(value) 返回值 'is not a function'