C++中的三维向量

three dimensional vectors in C++

本文关键字:向量 三维 C++      更新时间:2023-10-16

我的 c++ 代码中有:

  typedef vector<int> cards;
  typedef vector<cards> rows;
  typedef vector<rows> matriz;

在我的int main()中,我试图用这条线启动一个名为"cartas"的母体;

  63  cin>>n>>m;
  66  cartas(n,rows(m, cards(0)));

但是,使用 G++,请消除此错误:

flip.cpp: In function ‘int main()’:
flip.cpp:66: error: no match for call to ‘(matriz) (int&, rows)’

我想取一个 n*m 的矩阵,其中在每个位置都有整数向量。

谢谢,现在,我看不出如何。

你的代码是否与以下内容相似:

int n, m;
matriz cartas;
cin>>n>>m;
cartas(n,rows(m, cards(0)));

这行不通,matriz cartas;已经是初始化了。要么在 cin 语句之后定义cartaz,要么在之后赋值。

最佳的:

int n, m;
cin>>n>>m;
matriz cartas(n,rows(m, cards(0)));

另类:

int n, m;
matriz cartas;
cin>>n>>m;
cartas = matriz(n,rows(m, cards(0)));

为什么不设置一个大小为 n*m 的 vector[] 数组。您可以将每一行作为索引 % n 获取,将列作为索引 % m 获取。更简单,更干净。