0

我有一个数组:

int array[5];

我将使用这个数组在其中放入一些值。现在我的问题是:在填写一些数字后,如何检查是否在第 i 位的数组中填写了某些内容?谢谢

4

5 回答 5

5

没有这种“优雅”的方式。

做到这一点的唯一方法是有一些特殊的价值,这将表明“未填充”。例如,

int array[5] = { -1, -1, -1, -1, -1 };

另一种选择是有一个位图,它会告诉你哪些位置被填充,哪些 - 没有。

于 2012-08-02T13:18:26.107 回答
2

该数组包含从实例化那一刻起的值,因此您无法查询它以检查它是否已“填充”。但是您可以保留一个单独的数据结构来跟踪您填充了哪些元素。或者您可以将数组和其他数据结构包装在一个类中,该类允许您为数组分配值检查它们是否已被分配。

于 2012-08-02T13:18:43.253 回答
0

因为它是 C++,为什么不使用 std::pair 的容器?

该对的一个元素是布尔值(如果设置了值,则为真),另一个是所需的值。

于 2012-08-02T13:30:36.217 回答
0

如果 case ' i ' 已被填充,您可以使用其他数组保存。

int array[5]
bool filled[5]={false}; 
array[0] = 42; 
filled[0] = true;

但它很脏。

于 2012-08-02T13:20:53.437 回答
-1

好吧,您必须询问您在“i”位置的数组是否为 ==NULL 类似这样

int array[5];
int main()
{
    array[0]=1;
    array[1]=2;
    array[3]=1;
    for(int i =0; i < 6;i++)
    {
        if(array[i] != NULL)
        {
            cout<<"Value is: "<<array[i]<<endl;
        }else{
            cout<<"The Value is NULL"<<endl;
            }
    }
    return 0;
}
于 2012-08-02T13:20:43.533 回答