我的C++代码中有:

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

在我的int main()中,我尝试用此行初始化一个名为“cartas”的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的矩阵,在每个位置上都有整数 vector 。

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

最佳答案

您的代码是否偶然类似于:

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

09-09 19:10