![](/img/trans.png)
[英]If an integer array is filled partially, why is the element after the last filled integer, '1'? (C++)
[英]Accessing first open element on a partially filled array
对于部分填充的数组,for循环的外观如何,使您可以继续在第一个打开的元素上输入数据? 例如,如果将数组设置为最多容纳50个元素,但其中不明数量的元素已满,则for循环的外观将如何使您开始在第一个打开的元素上填写更多数据?
这取决于元素的类型。 如果数组包含指针,并且未分配的插槽设置为null,则将搜索null。 如果数组是整数数组,则首先需要将其初始化为特殊值,例如-1,然后搜索-1。 或者,您可以使用以下结构:
struct Element { Element():valid(false){}; bool valid; int val; }
并将有效值设置为true。 现在,您需要搜索无效的元素:
for (size_t i = 0; i < n; i++)
if (!array[i].valid) {
array[i].val = val;
array[i].valid = true;
break;
}
假设您有一个数组,int ar [50];
然后,您决定通过调用将30个元素添加到ar;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.