如何在C++中使用动态三维数组

用new 和 delete 的方法来实现。
注意:在使用new申请内存时,在使用过后,一定要采用delete来进行释放内存。
使用该方法创建动态数组时,需要由数组的角标依次向右进行创建;同时,也需要依照角标,从左到右来进行删除。

代码功能为:声明三维动态数组,将角标和进行相加并添加到mfc的list中,然后释放内存。
具体代码如下

//声明三维数组,长处分别为X_Length,Y_Length,Z_Length

    int X_Length = 5, Y_Length = 6, Z_Length = 7;//长度定义

    double ***DD;//声明指针
    DD = new double **[X_Length];//定义X的长度

    for (int x = 0;x < X_Length; x++)//在X的内部,定义Y
    {
        DD[x] = new double *[Y_Length];//定义Y的长度

        for (int y = 0; y < Y_Length; y++)//在xy的内部,定义Z
        {
            DD[x][y] = new double [Z_Length];//定义Z的长度
        }
    }

    //数组的声明完成,可以对数组进行操作
    //比如将数组的角标的和,并显示在表格中
    int count_number = 0;

    for (int i = 0;i < X_Length; i++)
    {
        for (int j = 0; j < Y_Length; j++)
        {
            for (int k = 0; k < Z_Length; k++)
            {
                DD[i][j][k] =  i + j + k;
                CString temp;
                m_list.InsertItem(count_number,_T(""));

                temp.Format(_T("%d"),count_number+1);m_list.SetItemText(count_number,0,temp);
                temp.Format(_T("%d"),i);m_list.SetItemText(count_number,1,temp);
                temp.Format(_T("%d"),j);m_list.SetItemText(count_number,2,temp);
                temp.Format(_T("%d"),k);m_list.SetItemText(count_number,3,temp);
                temp.Format(_T("%f"),DD[i][j][k]);m_list.SetItemText(count_number,4,temp);
                count_number++;
            }
        }
    }

    //用完数组后,用delete将内存释放
    for (int x = 0; x < X_Length; x++)
    {
        for (int y = 0; y < Y_Length; y++)
        {
            delete [] DD[x][y];//释放Z这一层
        }
    }
    for (int x = 0; x < X_Length; x++)
    {
        delete [] DD[x];//释放Y这一层
    }
    delete [] DD;//释放X这一层

在进行生成数组时,一定要弄清楚x、y、z之间的关系。

原文地址:https://www.cnblogs.com/gaozihan/p/10759636.html

时间: 2024-10-11 01:25:33

如何在C++中使用动态三维数组的相关文章

如何在tsung中使用动态参数(一)

这两天给公司一个新项目做上线前的压力测试,这个项目主要的接口有两个,获取订单号(getOrderId)和确认订单(confirm),需要重点压测.开始,我们选择用python写测试例,python的好处是开发迅速,但是并发能力不够:我就想试试用tsung,tsung是用erlang写的,并发肯定没问题,但我以前只用来测试过静态网站,没有测试过动态API,查了查文档,发现tsung是支持用erlang脚本生成动态参数的,于是我决定用tsung. tsung的安装略过,看一下getorderId的配

七、如何在Java中高效检查一个数组是否含有一个值

如何检查一个数组(非排序的)是否包含特定的值.这是个非常有用或经常被在Java中使用.这是个在Stack Overflow中高得票的问题.在已经高得票的答案中,有许多不同的处理方法,但是时间的复杂度非常不同.在下面,我将会展示每种方法的时间花费. 一.四种不同的方法去检查一个数组包含特定的值 1) 用List public static boolean useList(String[] arr, String targetValue) { return Arrays.asList(arr).co

如何在.cs中统一动态修改xaml中style资源定义的样式

关于设置控件属性样式的方法已经在之前的博客中有提及过,博客地址:设置控件样式的方法 当然在实际项目编写过程中,不光单纯的需要设置元素样式,有时候需要动态的修改元素的样式,这个时候就有些不 同了.需要针对不同的情形来选择不同的方法修改样式. 情形一:单纯的修改一个控件元素的样式,那么只要在.cs中仅仅针对这个控件的样式属性的修改即可. 情形二:如果是要针对同一类的所有控件的样式进行相同的属性修改,比如针对页面中所有的Label控件进行修改, 那么对应之前你在给这些Label控件设置样式的不同做法,

Android中如何在ViewPager中使动态创建的ImageView铺满屏幕

最近在做东西的时候,有一个要求,就是把用于在ViewPager里面轮播的图片铺满屏幕,但是中间遇到的问题是,ImageView与屏幕之间总是有空隙,情况如下图所示: 当时第一反应时考虑用LayoutParam,可是几经尝试无果,后来在网上找到了解决方案,只要在创建ImageView的时候,把ImageView的属性ScaleType设为FIT_XY然后问题就解决了,具体的代码如下: ImageView imageView=new ImageView(context); imageView.set

如何在Idea中创建动态Web 工程

一.File====>new====>project... 弹出新建项目页面 二.选择 Java Enterprise ====>选择 Web Application Project Sdk 选择已经配置好的jkd,其他可以使用默认 点击 ====> Next 三.输入Project name.project location(需要有目录),其他都默认填写 点击 ====>Finish 四.完善项目信息 1??.在WEB-INF下创建 classes和lib(第三方Jar包)

关于三维数组转换2维数组的问题

在数据库查询的时候,偶尔会遇到三维数组转换二维数组的问题 通常用的循环 两个foreach 循环就可以解决问题 foreach ($res as $key => $value) { foreach ($value as $k => $val) { $arr[] = $val; } } unset($res,$value,$val); 第一个循环出来的时候value 就是二维数组 因为下面出来的数组中还包含三维数组,之后需要删掉所以第二个循环中需要一个新的数组 然后把第二个数组的键值给了第二个数

如何在c程序中动态使用数组

C语言不允许对数组的大小作动态定义,不能在程序中临时输入数组大小,这就给编程带来一定的困难. 下面通过一个求平均数和标准差的小程序来展示如何在程序中动态定义数组大小: 1 /*如何在c程序中动态使用数组(calloc函数)*/ 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <math.h> 5 int main(){ 6 int num; //数据个数 7 double sum,ave,s2; //数据和.平

[C] 在 C 语言编程中实现动态数组对象

对于习惯使用高级语言编程的人来说,使用 C 语言编程最头痛的问题之一就是在使用数组需要事先确定数组长度. C 语言本身不提供动态数组这种数据结构,本文将演示如何在 C 语言编程中实现一种对象来作为动态数组. /* Author: [email protected] */ 基本的 C 数组 C 语言编程中声明一个基本数组如下: int main() { // 声明一个容纳 3000 个整数的数组 int my_array[3000]; } 以上代码做了两件事: ● 在栈区开辟内存空间.准确说来是在

如何在Android中为TextView动态设置drawableLeft等

如何在Android中为TextView动态设置drawableLeft等 两种方式: 方式1:手动设置固有边界 1 Drawable drawable = getResources().getDrawable(resId); 2 //注意查看方法TextView.setCompoundDrawables(Drawable, Drawable, Drawable, Drawable) 3 //的注释,要求设置的drawable必须已经通过Drawable.setBounds方法设置过边界参数 4