vector定义二维数组之后,在子容器添加元素的方法——即扩充列元素。

兔子爱读书
博客专家认证
2016-03-16 11:57:20
就想问一下,vector定义二维数组之后,如何在嵌套的vector容器里面push元素。
注意,是扩充子容器元素。如果定义一个中间容器作为过渡,就要删除原来的行再加入新行,题目要求是不能更改顺序的。代码如下,Arr[i].push_back(arr[i][j]); 位置报错。

int main(){
int arr[3][3] = {{1,2,3},{2,3,4},{3,4,5}};
vector<vector<int> > Array(3, vector<int>(3));

for(int i=0; i<3; i++){
for(int j=0; j<3; j++){
Arr[i].push_back(arr[i][j]);
}
}
for(int i=0; i<3; i++){
cout<<Arr[i][1];
}
return 0;
}

...全文
1107 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2016-03-16
  • 打赏
  • 举报
回复
vector<vector<int> > Array(3, vector<int>(3)); Arr[i].push_back(arr[i][j]); 这是笔误,编译没成功吧
兔子爱读书 2016-03-16
  • 打赏
  • 举报
回复
@lm_whales ,@iyomumx ,知道了~把扩充理解成赋值了 代码改来改去改错了,Array应该改成Arr,嘿嘿 谢谢各位
lm_whales 2016-03-16
  • 打赏
  • 举报
回复
编译通过,那就是抄错了, Arr应该是 Array 正确的代码确实不需要pash_back 除非真的想扩张数组 数组扩张以后,多于 3*3了
iyomumx 2016-03-16
  • 打赏
  • 举报
回复
Arr自构造起就是一个3x3的矩阵了,你再push_back就变成3x6了,单纯复制值的话Arr[i][j]=arr[i][j]就可以了
兔子爱读书 2016-03-16
  • 打赏
  • 举报
回复
@lm_whales 编译可以通过,但是输出结果:000 也就是说arr数组里面的值并没有赋值给Arr

65,186

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧