如何检查3d数组的元素是否为空?

问题描述 投票:0回答:1

我有一个填充的3d数组和一个打印每个2d数组的所选行的函数,但是如果所选行(从第一个数组开始)为空,则应打印“ row empty”,而我不知道如何检查是否为空。我尝试了以下方法:

void printrow(int X[][4][5], int row){
    if(X[0][row][0]==0){
        cout <<"row empty";
    }
    else{
        for(int i=0; i < 4; i++){
            for(int j=0; j < 5;j++){
                cout << X[i][row][j] << " ";
             }
        }
        cout << endl;  
    }
}

也许我应该使用指针?如果是,该怎么办?

c++ arrays pointers multidimensional-array
1个回答
0
投票

您可以使用std::optional

void printrow(std::array<std::array<std::array<std::optional<int>, 3>, 4>, 5> X, int row){
    if(!X[0][row][0].has_value()){
        cout <<"row empty";
    }
    else{
        for(int i=0; i < 4; i++){
            for(int j=0; j < 5;j++){
                cout << X[i][row][j].value() << " ";
             }
        }
        cout << endl;  
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.