C++中创建动态2维数组

 1 #include<iostream>
 2 #include<iomanip>
 3 using namespace std;
 4
 5 template<class Type>
 6 void Make2DArray(Type **&x,int rows,int cols)
 7 {
 8     // 创建一个行指针
 9     x=new Type *[rows];
10     for(int i=0;i<rows;i++)
11     {
12         x[i]=new Type [cols];
13     }
14
15 }
16
17 int main()
18 {
19     int rows,cols,i,j;
20     float **x;
21
22     cout<<"输入创建动态数组的行数rows= ";
23     cin>>rows;
24     cout<<"输入创建动态数组的列数cols= ";
25     cin>>cols;
26     Make2DArray(x,rows,cols);  // 声明一个2维数组,这条语句要放在下面的for循环之前
27     for(i=0;i<rows;i++)
28     {
29         for(j=0;j<cols;j++)
30         {
31              x[i][j]=j+i*cols;
32         }
33     }
34
35     cout<<"输出创建的数组:\n";
36     for(i=0;i<rows;i++)
37     {
38         for(j=0;j<cols;j++)
39         {
40              cout<<setw(3)<<x[i][j];
41         }
42         cout<<endl;
43     }
44        return 0;
45 }

注意:Make2DArray(x,rows,cols); 是为了声明一个rows行,cols列的2维数组;

时间: 2024-11-08 13:21:03

C++中创建动态2维数组的相关文章

创建动态二维数组

1 //======================================================== 2 //创建动态二维数组a [M] [N]: 3 //思路一:二维数组的抽象理解: 4 //思路二:二维数组在内存中实际排列: 5 //======================================================== 6 #include <stdio.h> 7 #include <stdlib.h> 8 #include <

以杨辉三角为例,从内存角度简单分析C语言中的动态二维数组

学C语言,一定绕不过指针这一大难关,而指针最让人头疼的就是各种指向关系,一阶的指针还比较容易掌握,但一旦阶数一高,就很容易理不清楚其中的指向关系,现在我将通过杨辉三角为例,我会用四种方法从内存的角度简单分析动态二维数组,若有不足或错误之处,还请指出! 在讲这之前,以一维数组为例,先重新认识一下数组: int array[5] = {1, 2, 3, 4, 5}; 首先数组名称是该数组的首地址常量,即数组名称就是指针,就有&array[0] == array! 那么我们可以推出*array ==

vector动态二维数组(容器的容器)占用内存分析

之前在这里写过一篇"C++中的动态二维数组".在C++中没有动态二维(多维)数组.但是根据原理我们可以自己创建. 在看过STL的vector源代码后"<STL源码剖析>---stl_vector.h阅读笔记"后,想到可以用容器的容器来做二维数组. 创建一个2x4的二维数组.想到的办法是:先创建一个容器的容器,外层大小的2(2行),然后里面容器小大为4(4列). int row=2,col=4; vector<vector<int> &g

C语言批量数据到动态二维数组

上一篇文章将文件读取放到静态创建的二维数组中,可是结合网络上感觉到今天的DT时代,这样批量大量读取一个上百行的数据,分配的内存是否可能由于大量的数据而产生溢出呢,近期一直研究里malloc函数.通过它来动态建立所需的二维数组.因此.通过文件操作和动态创建二维数组结合起来,将大量的数据动态的放入矩阵中,不知道这种思想是否正确,下午把程序执行出来了.将程序贴上来.欢迎大家一起探讨:对于有规律的大数据txt文档怎样高效而准确的读入数组或矩阵中呢???指教!.谢谢 程序: #include<stdio.

OpenCV中Mat与二维数组之间的转换

---恢复内容开始--- 在OpenCV中将Mat(二维)与二维数组相对应,即将Mat中的每个像素值赋给一个二维数组. 全部代码如下: #include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> //包含imread, imshow等标识符 #include "opencv2/imgproc/imgproc.hpp" //包含c

一个关于动态多维数组的问题

同样的错误,即使你年龄再大,也一样会犯,Opps............ 最近在做C#和C++的混合编程.昨天搞了堆栈平衡搞了好久,今天又解决了一个BUG,既开心又难过. 先看代码: unsigned char*** bytes2D=(unsigned char***)bytesArray; for(int i=0;i<height/2;i++) { for(int j=0;j<scanStride/3;j++) { tmp=bytes2D[i][j][0]*0.114+bytes2D[i][

python中如何表示多维数组(即矩阵形式)

python中如何表示多维数组 在java或者c以及其他语言中,表示个"整型3行4列"的矩阵,可以这样声明:int a[3][4]; 但是在python中一不能声明变量int,二不能列出维数.我们只能利用列表中夹带列表形式表示. 以实际例子为例,想将文件中如下格式的数据读取出来,,文件中的每行数据是一个样本,列数是每个样本的属性个数.我们希望将其读取出来组合成N*2的矩阵形式,以便于对这些数据进行处理. 实现的代码如下: dataSet = [] #列表,用来表示,列表中的每个元素也是

有关动态多维数组的一个问题

同样的错误,即使你的年龄越大,它会犯同样的,Opps............ 最近做的C#和C++混合编程.昨天上演了一出栈平衡了很长一段时间,今天,我们攻克了BUG.既高兴又伤心. 看看代码: unsigned char*** bytes2D=(unsigned char***)bytesArray; for(int i=0;i<height/2;i++) { for(int j=0;j<scanStride/3;j++) { tmp=bytes2D[i][j][0]*0.114+bytes

php中count获取多维数组长度的方法

本文实例讲述了php中count获取多维数组长度的实现方法.分享给大家供大家参考.具体分析如下: 先来看看下面程序运行结果: $numb=array(             array(10,15,30),array(10,15,30),array(10,15,30) ); echo count($numb,1); A.3B.12C.6D.9答案是Bcount函数中如果mode被设置为 COUNT_RECURSIVE(或 1),则会递归底计算多维数组中的数组的元素个数(也就是你结果的12).如