免责声明:我对C ++很陌生,所以如果这是一个愚蠢的问题,我很抱歉!
我正在尝试将数据读入1000个元素数组(double
),然后如果要读取的数据点少于1000个,则忽略我程序其余部分的多余元素。
我已经定义了1000个元素数组并读入了数据,现在想要在读取数据点定义的每个元素上执行一个函数。如何测试元素是否已定义?我会使用布尔代数测试,即if(array[i]) {\\function}
,但数据点可以是任何自然数,包括零,所以我不知道这是否有效。我该如何解决这个问题?
答案 0 :(得分:2)
解决问题的最典型方法"我的数组中的事物数量没有提前修复"是有一个变量来跟踪数组中实际有多少东西。然后,你只需要循环那么多东西。
由于您添加了C ++标记,您可以(并且应该)使用gen.Task
类来管理所有内容 - 您甚至可以获得超过1000的额外好处你应该碰巧拥有更多元素。
(除此之外:如果你坚持坚持使用一个1000长的阵列,你真的应该确保你做了一些适当的事情,如果你真的得到超过1000个数据点)
答案 1 :(得分:0)
您可以使用像nan这样的标记值(即非数字)来初始化数组:
double array[1000];
std::fill(std::begin(array), std::end(array), NAN);
然后按顺序填充你的数组:
array[0] = 1.2;
array[1] = 2.3;
array[2] = 3.4;
然后在满足此值后立即中断循环:
for(int i(0); i < 1000; ++i) {
if(isnan(array[i])) break;
function(array[i]);
}