博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于二级指针实现动态二维数组的不定长输入及遍历
阅读量:5957 次
发布时间:2019-06-19

本文共 1185 字,大约阅读时间需要 3 分钟。

引入:

用C++实现二维不等长数组,大部分教程给的方法是使用STL中的vector,但使用容器只是使用已经包装好的函数而已。
也有些教程利用二级指针(int **pointer)new出二维不定长数组,实现了不定长输入,但是没有给出动态二维不定长数组的遍历方法。因为是基于指针,所以不能用sizeof分别计算某一行的长度。
所以我想到一个解决方法:

每次输入某行的不确定元素数时,利用一个数组把这个数值保存下来,遍历的时候再直接拿来使用。(int[m][n]中的n)

下面给出代码:

1 #include
2 using namespace std; 3 4 int main() 5 { 6 int m = 0; 7 int j = 0; 8 int array[10]; 9 cout << "请输入行数" << endl;10 cin >> m;11 int **a = new int*[m];12 for (int i = 0; i < m; i++)13 {14 int n = 0;15 cout << "请输入该行元素个数---->" << endl;16 cin >> n;17 a[i] = new int[n];18 cout << "请输入元素---->\t应输入" << n << "个元素"<< endl;19 for (int k = 0; k < n; k++)20 {21 cin >> a[i][k];22 }23 array[j] = n;24 j++;25 26 }27 28 cout << "动态二维数组遍历实现----->" << endl;29 for (int i = 0; i < m; i++)30 {31 for (int k = 0; k < array[i]; k++)32 {33 cout << a[i][k] << "\t\t";34 }35 cout << endl;36 }37 38 39 system("pause");40 return 0;41 }

  核心方案是引入了一个数组去记录每行输入的不定长元素的个数。

  遇到实际问题时,可以参考给出的代码封装使用。

转载于:https://www.cnblogs.com/wonker/p/10331138.html

你可能感兴趣的文章
Python购物车练习
查看>>
iptables 规则执行顺序
查看>>
搭建kms服务器速记
查看>>
Linux中rc的含义
查看>>
StringBuffer 和 StringBiulder的区别
查看>>
自建网页服务器基础
查看>>
浅谈oracle 12C的新特性-CDB和PDB
查看>>
mysql 加密连接SSL
查看>>
mariadb 10.1.xx 自带数据库审计插件,直接上操作过程
查看>>
MySql的安装
查看>>
同时开左右两个SAPGUI编辑器显示同一段ABAP代码
查看>>
无法在Chrome浏览器中查看SCCM SSRS报告
查看>>
mongoDB副本集的搭建
查看>>
ORA-01045: user ICCS lacks CREATE SESSION privilege; logon denied
查看>>
Android官方开发文档Training系列课程中文版:手势处理之监测通用手势
查看>>
python 网络编程
查看>>
关闭Xshell警告音等一些小技巧
查看>>
vCenter的安装与部署
查看>>
linux下调整firefox的有用设置(高分辨率下需要)
查看>>
一句话木马(webshell)是如何执行命令的
查看>>