Vector动态二维数组的疑问

问题描述

如下代码: Vector v=new Vector(); Vector<Vector> vv = new Vector<Vector>(); for(int i=0;i<2;i++){ for(int j=0;j<2;j++){ v.addElement("a");} vv.addElement(v); }system.out.println(vv.toString());我以为打印出的语句为:[[a,a],[a,a,a,a]]可是却打印出:[[a,a,a,a],[a,a,a,a]]帮忙解决一下,先谢谢了! 问题补充:gtssgtss 写道

解决方案

你两次加的都是v,而且在循环里没有new,所以两次是一样的就像你有一个qq,加了2个好友,然后你把qq给你女朋友,她又加了2个好友,最后你登上去和他等上去,看到都是4个好友,因为你没有多申请一个qq
解决方案二:
w只是v的一层壳,不能阻止v的内容变化开始的时候,你没new,虽然加了2次,其实是同一个东西

时间: 2025-01-19 18:23:46

Vector动态二维数组的疑问的相关文章

C++建立动态二维数组

C++建立动态二维数组主要有两种方法: 1.使用数组指针,分配一个指针数组,将其首地址保存在b中,然后再为指针数组的每个元素分配一个数组                           int **b=new int*[row];       //分配一个指针数组,将其首地址保存在b中                                                                for(i=0;i<row;i++)             //为指针数组的每个

c++中创建动态二维数组

c++ 中创建动态二维数组的程序代码 动态创建一维数组 int *arr; //it can be any other type (char, float) arr = new int[n]; //n should be integer variable 动态创建二维数组 int **arr; int N,M; cin >> N >> M; arr = new int*[N]; for(int i=0;i<N;i++) { arr[i] = new int[M]; }

c语言-双重指针定义动态二维数组

问题描述 双重指针定义动态二维数组 指针符号太多了 求解释每个指针符号 问:?二重指针 太多 求解释一下各个 p=(int **)malloc(sizeof(int *)*line); if(NULL==p) { return; } for(i=0;i<line;i++) { *(p+i)=(int *)malloc(sizeof(int)*row); if(NULL==*(p+i)) { return; } } 解决方案 首先我来看malloc做了什么,申请了一组空间,存放int型指针,返回这

c++-C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中?

问题描述 C++如何创建动态二维数组,然后将二维数组的数保存到一维数组中? //此程序是我自己编的,但是不能通过,请问这是怎么回事? #include using namespace std; int main() { int n,m,k,i,j,l; cin>>n>>m>>k; int X[][]={0}; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { X[i][j]=i*j; } int Y[]={0}; for(i=1;i

acm icpc-关于二维数组和vector的关系

问题描述 关于二维数组和vector的关系 vector p[MAX],像这样定义vector和定义一个二维数组有什么不同,有什么好处或者坏处么? 解决方案 vector是线程安全的是,这是它最大的优点.坏处就是它的速度肯定会比普通的二维数组慢. 所以如果这里变量不是多线程用到的,最好不用vector. 解决方案二: vector 是动态的,适用于数据量大小不定的情况 二维数据,定义了就固定了,无法适应动态个数的情况.如果数据的个数能确定,用二维数组当然好过 vector . 解决方案三: C

java在定义二维数组时定义第二层数组出现的问题

问题描述 java在定义二维数组时定义第二层数组出现的问题 解决方案 triang已经定义了,不需要重复定义,去掉报错那行定义的int 解决方案二: 去掉错误那行前面的int 解决方案三: 下边不是已经可以了吗,想说啥 解决方案四: java动态定义二维数组问题关于vector定义二维数组的问题Java定义二维数组的几种方法

c++的问题-指针和二维数组的用法

问题描述 指针和二维数组的用法 int *s for(i=0;i<5;i++) for(j=0;j<5;j++) cout<<s[i][j];//error想请教各位程序员哥哥这个要怎么改啊? 解决方案 楼上的就行了,int (*s)[5][5] 也可以吧. 解决方案二: 虽然是二维的数组,其实指针的指的是第一行第一列,所以*s[i]就成了一个一维数组的指针,在c++里面你还可以试试引用,同时理解指针. 解决方案三: 首先,s在此处定义为一维,二维引用会导致错误.其次,对于s,没有

PHP从二维数组得到N层分类树的实现代码_php技巧

公司的产品分类存在一张表内,以mid标识其父分类,需要得到有层次结构的数组,以备后续操作. 想了下,想了一会儿没想出不去重复读取数据库的方法或者不需要递归的操作. 数据源:(数据要求一维key与对应value二维数组的id要一样) $items = array(     1 => array('id' => 1, 'pid' => 0, 'name' => '江西省'),     2 => array('id' => 2, 'pid' => 0, 'name' =

VS2013下动态数组二维数组读二进制文件的问题

问题描述 VS2013下动态数组二维数组读二进制文件的问题 int samples_to_read = 7200; uint8_t **caculate_a; int count2,count3; caculate_a = (uint8_t **)malloc(sizeof(uint8_t *)* 3); for (count1 = 0; count1<3; count1++){ //动态数组分配空间 caculate_a[count1] = (uint8_t *)malloc(sizeof(u