zoukankan      html  css  js  c++  java
  • 13. 通用二维数组制造函数

    题目:

     为程序make_2d_array 编写一个通用型算法,它的第三个参数不是整数 col_number,而是一维数组row_size。它创建一个二维数组,第 i 行的列数是 row_size [ i ]。

    思路:

    本题需要改变的是列数,也就是说,每行的元素个数可以不同,把这些元素个数存储在数组 row_size 中。其余不需要改变。

    代码:

     1 #include <iostream>
     2 using namespace std;
     3 
     4 template <typename T>
     5 void make_2d_array (T** &x, int row_number, const int* row_size) {
     6     x = new T* [row_number];
     7 
     8     for (int i = 0; i < row_number; ++i) {
     9         x[i] = new T [row_size[i]];
    10     }
    11 }
    12 
    13 int main() {
    14     int** x;
    15     cout << "Enter row : ";
    16     int row_number;
    17     cin >> row_number;
    18     int row_size[row_number];
    19 
    20     for (int i = 0; i < row_number; ++i) {
    21         cout << "Enter row " << i << " size : ";
    22         cin >> row_size[i];
    23     }
    24 
    25     make_2d_array(x, row_number, row_size);
    26 
    27     for (int i = 0; i < row_number; ++i) {
    28         for (int j = 0; j < row_size[i]; ++j) {
    29             cout << "Enter [" << i << "][" << j << "] : ";
    30             cin >> x[i][j];
    31         }
    32     }
    33 
    34     for (int i = 0; i < row_number; ++i) {
    35         for (int j = 0; j < row_size[i]; ++j) {
    36             cout << x[i][j] << " ";
    37         }
    38         cout << endl;
    39     }
    40 
    41     return 0;
    42 }
  • 相关阅读:
    常见hash算法的原理
    【学习干货】给coder的10个读书建议
    htc one x刷机记录
    Linux 搭建SVN server
    javascript
    USACO comehome Dijkstra
    当设计师、产品经理和程序员去交友站点找女朋友
    Spring3.0 AOP 具体解释
    慕课网Hibernate初探之一对多映射实验及总结
    C++数组引用
  • 原文地址:https://www.cnblogs.com/Hello-Nolan/p/12307434.html
Copyright © 2011-2022 走看看