C++定义元素是vector的数组
typedefvector<vector<int>>array;arrayb[4](m,vector<int>(m));我想定义一个元素为二维数组的数组(4个元素)但编译...
typedef vector<vector<int> > array;
array b[4](m,vector<int>(m));
我想定义一个元素为二维数组的数组(4个元素)但编译通不过(bad array initializer),应该怎样改? 展开
array b[4](m,vector<int>(m));
我想定义一个元素为二维数组的数组(4个元素)但编译通不过(bad array initializer),应该怎样改? 展开
4个回答
展开全部
int m =4;
array b(m,vector<int>(m));
array是vector<vector<int> >的别名
你的写法相当于vector<vector<int> > b[4](m,vector<int>(m))
很明显没有这样的写法
如果你想要的是一个有4个array的数组的话构造函数就应该做相应的修改,应该用4个vector<vector<int> >去构造
array b(m,vector<int>(m));
array是vector<vector<int> >的别名
你的写法相当于vector<vector<int> > b[4](m,vector<int>(m))
很明显没有这样的写法
如果你想要的是一个有4个array的数组的话构造函数就应该做相应的修改,应该用4个vector<vector<int> >去构造
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组不能那么初始化,应该用聚集,array b[4]={。。。};或者循环里赋值
typedef vector<int> arr;
typedef vector<arr> array;
array b[4];
int m;
typedef vector<int> arr;
fill(b,b+4,array(m,arr(m))); //填充相同的值
fill_n(b,4,array(m,arr(m)));
typedef vector<int> arr;
typedef vector<arr> array;
array b[4];
int m;
typedef vector<int> arr;
fill(b,b+4,array(m,arr(m))); //填充相同的值
fill_n(b,4,array(m,arr(m)));
更多追问追答
追问
fill_n(b,4,array(m,arr(m)));这句什么意思?
追答
fill 填充 [b,b+4)半开区间
file_n 填充 b开始 4个元素
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vector<int> col1,col2;
vector<vector<int>> row;
row.push_back(col1);
row.push_back(col2);
vector<vector<int>> row;
row.push_back(col1);
row.push_back(col2);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询