C++中动态申请二维数组
这里主要介绍C++中动态申请二维数组的两种方式,直接给出代码,很容易明白,简单的作为一个笔记。
#include <iostream> #include <iomanip> // 输入输出操纵 #include <vector> using namespace std; // 法一:new 方式申请 void dynamicArray() { int rows, cols; cin >> rows >> cols; int **element = new int* [rows]; // 申请二维动态数组 int i; for (i = 0; i < rows; i++) element[i] = new int[cols]; int j; for(i = 0; i < rows; i++) // 初始化 { for (j = 0; j < cols; j++) { cin >> element[i][j]; } } for (i = 0; i < rows; i++) { for(j = 0; j < cols; j++) { cout << setw(4) << element[i][j]; // 每个输出占四个字符,前面以空格填充 //cout << setfill('*') << element[i][j]; // 空格以*填充 } cout << endl; } for(i = 0; i < cols; i++) // 释放动态数组 { delete []element[i]; } delete []element; } // 法二:vector 方式 没用new无需释放 void dynamicArray2() { int rows, cols; cin >> rows >> cols; vector<vector<int>> element(rows, vector<int>(cols)); // 用vector申请二维动态数组 int i,j; for(i = 0; i < rows; i++) // 初始化 { for (j = 0; j < cols; j++) { cin >> element[i][j]; } } for (i = 0; i < rows; i++) { for(j = 0; j < cols; j++) { cout << setw(4) << element[i][j]; // 每个输出占四个字符,前面以空格填充 //cout << setfill('*') << element[i][j]; // 空格以*填充 } cout << endl; } }
参考blog:1:http://www.cnblogs.com/China3S/p/3616938.html
2:http://blog.sina.com.cn/s/blog_afe2af380101b4gz.html
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。