注意,是扩充子容器元素。如果定义一个中间容器作为过渡,就要删除原来的行再加入新行,题目要求是不能更改顺序的。代码如下,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;
}
5 个解决方案
#1
vector<vector<int> > Array(3, vector<int>(3));
Arr[i].push_back(arr[i][j]);
这是笔误,编译没成功吧
Arr[i].push_back(arr[i][j]);
这是笔误,编译没成功吧
#2
@lm_whales 编译可以通过,但是输出结果:000
也就是说arr数组里面的值并没有赋值给Arr
也就是说arr数组里面的值并没有赋值给Arr
#3
Arr自构造起就是一个3x3的矩阵了,你再push_back就变成3x6了,单纯复制值的话Arr[i][j]=arr[i][j]就可以了
#4
编译通过,那就是抄错了,
Arr应该是 Array
正确的代码确实不需要pash_back 除非真的想扩张数组
数组扩张以后,多于 3*3了
Arr应该是 Array
正确的代码确实不需要pash_back 除非真的想扩张数组
数组扩张以后,多于 3*3了
#5
@lm_whales ,@iyomumx ,知道了~把扩充理解成赋值了
代码改来改去改错了,Array应该改成Arr,嘿嘿
谢谢各位
代码改来改去改错了,Array应该改成Arr,嘿嘿
谢谢各位
#1
vector<vector<int> > Array(3, vector<int>(3));
Arr[i].push_back(arr[i][j]);
这是笔误,编译没成功吧
Arr[i].push_back(arr[i][j]);
这是笔误,编译没成功吧
#2
@lm_whales 编译可以通过,但是输出结果:000
也就是说arr数组里面的值并没有赋值给Arr
也就是说arr数组里面的值并没有赋值给Arr
#3
Arr自构造起就是一个3x3的矩阵了,你再push_back就变成3x6了,单纯复制值的话Arr[i][j]=arr[i][j]就可以了
#4
编译通过,那就是抄错了,
Arr应该是 Array
正确的代码确实不需要pash_back 除非真的想扩张数组
数组扩张以后,多于 3*3了
Arr应该是 Array
正确的代码确实不需要pash_back 除非真的想扩张数组
数组扩张以后,多于 3*3了
#5
@lm_whales ,@iyomumx ,知道了~把扩充理解成赋值了
代码改来改去改错了,Array应该改成Arr,嘿嘿
谢谢各位
代码改来改去改错了,Array应该改成Arr,嘿嘿
谢谢各位