动态内存分配,创建一个对每一行列数不同(元素个数不同)的二维数组!
来源:互联网 发布:json转java实体对象 编辑:程序博客网 时间:2024/05/20 09:27
上一篇提到了C++中的动态内存机制以及如何动态建立数组,这里给出更具一般性的算法,对一个二维数组,每一行所含元素个数不相同的情况。
#include <bits/stdc++.h>using namespace std;template<class T>bool make2dArray(T ** &arr, int numberOfRows, int arrNumberOfColumns[]) { //创建一个二维数组 try{ //创建行指针 arr = new T * [numberOfRows]; //为每一行分配空间 for(int i = 0; i < numberOfRows; ++i) { for(int j = 0; j < numberOfRows; ++j) arr[i] = new int [arrNumberOfColumns[j]]; } return true; }catch (bad_alloc) { cerr << "Out of memory" << endl; return false; }}int main() { int row; cin >> row; //存储每一列所含元素的个数 int *col = new int[row]; for(int i = 0 ; i < row; ++i) {cin >> col[i];} int **arr; if(make2dArray(arr, row, col)) { for(int i = 0; i < row; ++i){ for(int j = 0; j < col[i]; ++j) { //此处可以自己定义元素从控制台输入 arr[i][j] = i + j; } } } for(int i = 0; i < row; ++i) { for(int j = 0; j < col[i]; ++j) { j ? cout << " " << arr[i][j] : cout << arr[i][j]; } puts(""); } //最终一定不要忘记释放内存!!! delete[] col; for(int i = 0; i < row; ++i) { delete[] arr[i]; } return 0;}
0 0
- 动态内存分配,创建一个对每一行列数不同(元素个数不同)的二维数组!
- 用内存申请实现动态二维数组的创建及打印(每行的元素个数不同)
- 利用动态内存分配创建一个二维数组
- 求数组中不同元素的个数
- 数组 类别数 不同数据的个数。
- 二维数组的动态内存分配
- 二维数组的动态内存分配
- 内存分配方式(动态/静态)的不同对const变量(全局/局部)访问性的影响
- 指针数组,数组指针,二维数组的动态内存分配
- C/C++ 统计两个数组中不同元素的个数
- 关于二维数组的动态内存分配的一个比较好的方法
- 有序数组中绝对值不同的数的个数
- 二维数组、三维数组动态内存分配
- 从一个含有很多不同元素的大数组中寻找10个最大的数
- Windows下不同的动态内存分配方式
- 分析了Windows下不同的动态内存分配方式
- 自定义类似Gridview 不同行列数不同 的显示控件
- 内存的不同分配方式
- 堆内存和栈内存
- Html5离线存储
- 从并发处理谈PHP进程间通信(二)System V IPC
- 简述冯诺依曼计算机体系结构
- JavaScript 关于作用域链
- 动态内存分配,创建一个对每一行列数不同(元素个数不同)的二维数组!
- zhedapat1001
- int *p=(int *)(&a + 1)的理解
- 【Leetcode】15. 3Sum
- 27. Remove Element
- rails路由(1)
- Html,css学习总结(一)
- Multipath TCP Test
- sdutacm-区间覆盖问题