zoukankan      html  css  js  c++  java
  • C++动态数组

    一: 一维数组初始化

    标准方式1:int value[100]; //value[i]的值不定,因为没有初始化;
    标准方式2:int value[100] = {1,2,3}; //value[0],value[1],value[2]值是1,2,3,没有定义的初始化为0
    指针方式: int * value = new int[n]; //未初始化
    删除数组空间:delete []value;

    二:二维数组初始化:

    标准方式1:int value[100][100]; //value[i]的值不定,因为没有初始化;

    标准方式2:int value[100][100] = {{1,1},{2,2},{3,3}}; //value[0][0,1],value[1][0,1],value[2][0,1]初始化,没有定义初始化为0

    三:建立二维动态数组数组

    这里说的动态数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组

    1.使用指针,分配一个指针数组,将其首地址保存在num中,然后再为指针数组的每个元素分配一个数组

     1 int j = 3//定义第二维数组的个数
     2 int**num = new int *[longs];  //分配一个指针数组,将其首地址保存在num中;
     3 for(int i = 0; i < longs; i++){   //为指针数组的每个元素分配一个数组;
     4     num[i] = new long[j];
     5 }          
     6 //用这种方法定义的动态二维数组的释放需先释放指针数组的每个元素指向的数组,然后再释放该指针数组;
     7 for(int i = 0; i < longs; i++){
     8     delete [j]num[i];
     9     num[i]=NULL;
    10 }
    11 delete [longs]num;
    12 num=NULL;

      2.利用vector

     1 int  main() {  
     2    int row,column;  
     3   cin>>row>>column;   5 //申请空间  
     6   vector<vector<int> > a(row,vector<int>(column));  
     7   //使用空间  
     8   for(int j = 0;j < row; j++) {
     9      for(int k = 0;k < column; k++) {
    10          a[j][k] = rand()%100;  
    11      }
    12   }
    13   for(int j = 0;j < row;j++)  {  
    14      cout<<endl;  
    15      for(int k = 0;k< column;k++)  {  
    16         a[j][k] = rand()%100;  
    17         cout<<a[j][k]<<"     ";  
    18      }  
    19   }         
    20   return 0;        
    21 }  
  • 相关阅读:
    洛谷P1182 数列分段`Section II`
    洛谷P3902 递增
    洛谷P1678-烦恼的高考志愿
    POJ 3263-Tallest Cow
    洛谷P2280 [HNOI2003]激光炸弹
    POJ 1958
    Vijos 1197
    VirtualBox 导入.vdi文件时报“uuid is exists”错误
    解压常用
    cut 命令
  • 原文地址:https://www.cnblogs.com/zyf-zhaoyafei/p/4392011.html
Copyright © 2011-2022 走看看