1

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

谢谢,现在,我不明白它如何。

4

2 回答 2

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)));
于 2012-05-27T17:42:18.203 回答
0

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

于 2012-05-27T17:41:09.573 回答