如何将数据存储到3D网格中并以c ++格式打印

时间:2017-07-11 15:55:35

标签: c++

我正在尝试创建3D网格,将数据存储到其中并打印存储的信息。但是,它不打印任何东西。看起来它存储信息但不打印它。我可以打印p.a p.b p.c但不打印THREEG。任何帮助。

    typedef struct {

      double a; 
      double b;
      double c; 
    } MYGR;

    void My2DGrid()
    {
        int i, j, k =0;
        MYGR THREEG[5*5*5];
        for ( i = 0; i < 5 ; i++) { 
            for ( j = 0; j < 5 ; j++) { 
                for (k = 0; k < 5; k++) { 
                    MYGR p;
                    p.a =1; p.b=2, p.c=3;
                    THREEG[i+5*j+5*5*k] = MYGR(p); 
                    cout << i<< "\t" <<j << "\t" << k <<"\t" << THREEG[i+5*j+5*5*k] << endl; 
                }
            }
        }
    }

int main()
{
My2DGrid();
}

1 个答案:

答案 0 :(得分:1)

你做作业:

THREEG[i+5*j+5*5*k] = MYGR;

(因为您没有为MYGR定义的构造函数)将未定义(随机)值分配给您的数组。我认为你的意思是:

THREEG[i+5*j+5*5*k] = p;

您也没有定义运算符来打印结构,例如:

std::ostream& operator<<(std::ostream &os, const MYGR &p)
{
  os << p.a << " " << p.b << " " << p.c;
  return os;
}