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),应该怎样改?
展开
 我来答
函梓维松缎
2020-02-27 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.3万
采纳率:28%
帮助的人:894万
展开全部
注意vector的元素是int
*的指针,指向一个数组的第一个元素。
所以取值应该是:
指向数组的第一个元素:cout
<<
*(position[i]);
第二个元素:cout
<<
*(position[i]
+
1);
以此类推。
vector的下一个元素是:position[i+1]哦,也指向一个数组。
ul0402206
2012-11-07 · TA获得超过505个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:300万
展开全部
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> >去构造
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ssilspro
推荐于2016-03-24 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1696万
展开全部
数组不能那么初始化,应该用聚集,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)));
更多追问追答
追问
fill_n(b,4,array(m,arr(m)));这句什么意思?
追答
fill 填充 [b,b+4)半开区间
file_n 填充 b开始 4个元素
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9308069
2012-11-07 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1855万
展开全部
vector<int> col1,col2;
vector<vector<int>> row;
row.push_back(col1);
row.push_back(col2);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式