0

私は配列を持っています:

int array[5];

そして、この配列を使用して値を入れます。ここで私の質問: いくつかの数値を入力した後、場所 i の配列に何かが入力されているかどうかを確認するにはどうすればよいですか? ありがとうございました

4

5 に答える 5

5

そのような「エレガントな」方法はありません。

これを行う唯一の方法は、「満たされていない」ことを示す特別な値を持つことです。例えば、

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

もう 1 つのオプションは、ビットマップを使用することです。これにより、どの位置が埋められ、どの位置が埋められていないかがわかります。

于 2012-08-02T13:18:26.107 に答える
2

配列には、インスタンス化された瞬間からの値が含まれているため、クエリを実行して「入力済み」かどうかを確認することはできません。ただし、別のデータ構造を保持して、どの要素を埋めたかを追​​跡できます。または、配列と他のデータ構造をクラスでラップして、配列に値を割り当て、それらが既に割り当てられているかどうかを確認することもできます。

于 2012-08-02T13:18:43.253 に答える
0

それはC++なので、std::pairのコンテナを使用しないのはなぜですか?

ペアの 1 つの要素はブール値 (値が設定されている場合は true) で、もう 1 つは必要な値です。

于 2012-08-02T13:30:36.217 に答える
0

ケース ' 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 に答える