二维数组new小结

1.
A (*ga)[n] = new A[m][n];
...
delete []ga;
缺点:n必须是已知
优点:调用直观,连续储存,程序简洁(经过测试,析构函数能正确调用)

2. A** ga = new A*[m];
for(int i = 0; i < m; i++)
ga[i] = new A[n];
...
for(int i = 0; i < m; i++)
delete []ga[i];
delete []ga;
缺点:非连续储存,程序烦琐,ga为A**类型
优点:调用直观,n可以不是已知

3. A* ga = new A[m*n];
...
delete []ga;
缺点:调用不够直观
优点:连续储存,n可以不是已知

4. vector > ga;
ga.resize(m); //这三行可用可不用
for(int i = 1; i < n; i++) //
ga[i].resize(n); //
...

缺点:非连续储存,调试不够方便,编译速度下降,程序膨胀(实际速度差别不大)
优点:调用直观,自动析构与释放内存,可以调用stl相关函数,动态增长

5. vector ga;
ga.resize(m*n);
方法3,4的结合

6. 2的改进版
A** ga = new A*[m];
ga[0] = new A[m*n];
for(int i = 1; i < m; i++)
ga[i] = ga[i-1]+n;
优点:连续存储,n可以不是已知,析构方便,猜想只需delete [] ga;

问题:

1.怎么进行多维数组的声明和初始化?

2.是否能够动态分配多维数组,怎么样正确析构?

3.怎么理解这些操作?

抛出问题,本周搞定.

转载于:https://www.cnblogs.com/beyondstorm/archive/2008/08/26/1276278.html

C++二维数组new小结(zz)相关推荐

  1. C语言二维数组元素的多种表示方法小结

    C语言二维数组元素的多种表示方法小结 昨天,一个小可爱问我,为何函数中,数组可以改变主函数中的值,比如b[i],就可以改原来数组中的值.其实b[i] 等价于 *(b + i)也是通过地址间接更改的,小 ...

  2. php查找二维数组下标,PHP实现二维数组中的查找算法小结

    本文实例讲述了PHP实现二维数组中的查找算法.分享给大家供大家参考,具体如下: 方法1:silu从左下角最后一行的第一个元素开始,遍历.如果小于target 则遍历该行的所有元素,找到结束.如果大于继 ...

  3. 用STL vector 来创建二维数组 zz

    以前我要建立一个二维数组,总是使用 int N=5, M=6; vector<vector<int> > Matrix(N); for(int i =0; i< Matr ...

  4. php二维数组中的查找,PHP实现二维数组中的查找算法小结

    本文实例讲述了PHP实现二维数组中的查找算法.分享给大家供大家参考,具体如下: 方法1:silu从左下角最后一行的第一个元素开始,遍历.如果小于target 则遍历该行的所有元素,找到结束.如果大于继 ...

  5. php 组装二维数组,php实现快速对二维数组某一列进行组装的方法小结

    本文实例总结了PHP实现快速对二维数组某一列进行组装的方法.分享给大家供大家参考,具体如下: 问题: 比如我二维数组是这样的: $user = array( '0'=> array('id'=& ...

  6. C语言学习笔记 (005) - 二维数组作为函数参数传递剖析

    前言 很多文章不外乎告诉你下面这几种标准的形式,你如果按照它们来用,准没错: //对于一个2行13列int元素的二维数组 //函数f的形参形式 f(int daytab[2][13]) {...}// ...

  7. C语言 指针+二维数组详解 (应付期末、考研的最强笔记,建议收藏)

    哈喽!这里是一只派大鑫,不是派大星.本着基础不牢,地动山摇的学习态度,从基础的C语言语法讲到算法再到更高级的语法及框架的学习.更好地让同样热爱编程(或是应付期末考试 狗头.jpg)的大家能够在学习阶段 ...

  8. floatmap 二维数组_第 2 章 数组

    第2 章 数组 几乎所有的编程语言都原生支持数组类型,因为数组是最简单的内存数据结构.JavaScript里也有数组类型,虽然它的第一个版本并没有支持数组.本章中,我们将深入学习数组数据结构和它的能力 ...

  9. c语言二维数组 ppt,C语言二维数组与指针.ppt

    C语言二维数组与指针.ppt 好好考,全国计算机等级考试 二级C语言,第12讲 二维数组与指针,二维数组的定义 数组元素的引用及初始化 二维数组和指针 二维数组名和指针数组作为实参 二维数组程序举例 ...

最新文章

  1. 2020年10月linux内核,Linux内核5.9于2020年10月12日发布
  2. 如何给Apache添加虚拟路径和虚拟主机?
  3. 如何在 InfoPath 2003 表单中动态加载数据
  4. 贝叶斯神经网络的辩论
  5. 第十届蓝桥杯java B组—试题I 后缀表达式
  6. mave工程中的一个类调用另一个聚合工程的一个类_谈谈设计模式:建造者模式在jdk中的体现,它和工厂模式区别?...
  7. java加按钮_如何从零开始对接第三方登录(Java版):QQ登录和微博登录
  8. pb,json,二进制,xml数据对比
  9. excel日期相关计算天数
  10. Spring xml文件配置——创建bean的三种方式及作用范围、生命周期
  11. Servlet和Servlet容器概念
  12. Excel 宏编程-使用excel宏编写第一个Hello World程序实例演示!
  13. android webview 本地视频播放,Android中webview html5 自动播放本地视频
  14. matlab连通区域统计,MATLAB bwlabel函数 统计连通区域
  15. 搜索 阿虚同学_凉宫春日阿虚台词“在虚构的故事当中寻求真实感的人脑袋一定有问题”动画是出自那一集?...
  16. Python:佛祖保佑
  17. php如何处理304缓存,php静态文件返回304技巧分享
  18. linux软件源历史版本,解决deepin 15.9.2以后版本软件太旧的问题,混合lion与panda源使用...
  19. 深度学习花书学习感悟之第二章线性代数
  20. Java 二分查找算法及效率比较

热门文章

  1. java socket wex5_WeX5集成ActiveMQ+WebSocket实现消息推送
  2. 用函数求10个数的平均值_Excel AVERAGEIF函数条件求平均值
  3. pca降维的基本思想_一文读懂 PCA 降维算法
  4. Android 三方库lottie、mmkv的使用
  5. 安装了email模块还是报错_科普:利用Python smtplib和email模块实现自动发送邮件功能...
  6. 利用qq账号查询所绑定的手机号码_如何更改社保绑定手机号?
  7. 002_Redis安装和卸载
  8. 005-SDK框架之LYWSDKCallBackListener.h
  9. python绘制饼图的列表有none_python 有没有库或者函数,类似R的corrplot,画相关系数图的时候,每个方框里面为饼图?...
  10. oracle 前导列_通过 PL/SQL Developer (Oracle)-数据库(26)