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