C++动态数组学习笔记(三)【vector建动态数组】

前面,我说到了用new分配内存的方式,创建变长数组,但是,new的方法有很大的弊端,如果要真正实现自定义的变长二维数组,很麻烦,还得用双层指针

我们有没有什么简便的方法呢?答案是肯定的。

上代码:

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4. void main()
  5. {
  6.         int i,j;
  7.         int H,L; //L为列数;H为行数
  8.         int M; //M为整个矩阵的所有元素个数
  9.         cout<<“请输入列数:”<<endl;
  10.         cin>>L;
  11.         cout<<“请输入行数:”<<endl;
  12.         cin>>H;
  13.         M=H*L;
  14. //        vector<int>        Matrix1(M+10);        //声明一维变长数组
  15.         vector<vector<int> > Matrix1(L, vector<int>(H));  //声明二维变长数组
  16.         if ((L==H) && (L!=0) && (H!=0))
  17.         {
  18.                
  19.                 cout<<“请输入数组:”<<endl;
  20.                 for (i=0;i<H;i++)
  21.                 {
  22.                         for (j=0;j<L;j++)
  23.                         {
  24.                                 cin>>Matrix1[i][j];
  25.                         }
  26.                 }
  27.                 cout<<endl;
  28.                 cout<<“您输入的数组如下:”;
  29.                 for (i=0;i<H;i++)
  30.                 {
  31.                         for (j=0;j<L;j++)
  32.                         {
  33.                             if(j%L==0)
  34.                                 {
  35.                                         cout<<endl;
  36.                                 }
  37.                                 cout<<Matrix1[i][j]<<” “;
  38.                         }
  39.                 }
  40.                 cout<<endl<<endl;
  41.         }
  42.         else
  43.         {
  44.                 cout<<“您的输入有误!”<<endl;
  45.        
  46.         }
  47. }

复制代码

从上面可以看出,用vector可以很方便地定义变长数组,

vector<int>        Matrix1(M+10);
这条语句可以定义变长一维数组;

vector<vector<int> > Matrix1(L, vector<int>(H));
这条语句可以定义变长二维数组,其实就是vector里面套vector.

不过,在使用vector之前,需要在头部加上“#include <vector>”,不然会出错的。

用vector还有一个好处,可以不用跟new一样在后面用delete删除分配的内存。

大家来试试吧!

 



本文固定链接: http://www.ntxz.net/?p=591 | 周忞 | 吉心的记事本



该日志由 吉心 于2009年11月16日发表在 懒得分类, 旧版博客 分类下, 你可以发表评论
在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: C++动态数组学习笔记(三)【vector建动态数组】 | 周忞 | 吉心的记事本

C++动态数组学习笔记(三)【vector建动态数组】:等您坐沙发呢!

发表评论

您必须 [ 登录 ] 才能发表留言!