C ++中的三维向量

时间:2012-05-27 17:35:30

标签: c++

我的c ++代码:

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

在我的int main()中,我尝试初始化名为&#34; cartas&#34;的matriz。用这条线;

  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的matriz,在每个位置都有整数向量。

谢谢,现在,我不知道如何。

2 个答案:

答案 0 :(得分:4)

您的代码是否有任何机会类似于:

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

这不起作用,matriz cartas;已经是初始化。在cartaz语句后定义cin,或在之后分配。

最优:

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)));

答案 1 :(得分:0)

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