zoukankan      html  css  js  c++  java
  • 北京大学C++程序设计coursera课程第七周编程填空题

    描述

    实现一个三维数组模版CArray3D,可以用来生成元素为任意类型变量的三维数组,使得下面程序输出结果是:

    0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,

    注意,只能写一个类模版,不能写多个。

    无复合类定义实现:

     1 #include <iostream>
     2 using namespace std;
     3 template <class T>
     4 class CArray3D
     5 {
     6     private:
     7         T *** array;
     8         int r,c,l;
     9     public:
    10         CArray3D(int _r, int _c, int _l)
    11         {
    12             array = new T **[_r];
    13             for(int i = 0;i<_r; i++)  
    14             {  
    15                 array[i] = new T*[_c];  
    16             }  
    17             for(int i = 0;i<_r; i++)  
    18             {  
    19                 for(int j=0; j<_c; j++)
    20                 {
    21                     array[i][j] = new T[_l];    
    22                 }  
    23             }
    24             r = _r; c = _c; l = _l;
    25         }
    26     
    27         ~CArray3D()
    28         {
    29             for(int i = 0;i<r; i++)  
    30             {  
    31                 for(int j=0; j<c; j++)
    32                 {
    33                     delete []array[i][j];    
    34                 }  
    35                 delete []array[i];
    36             }
    37             delete []array;
    38         }
    39     int ** operator[] (int index) 
    40     {  
    41         return array[index];  
    42     } 
    43     
    44 };
    45 
    46 
    47 int main()
    48 {
    49     CArray3D<int> a(3,4,5);
    50     int No = 0;
    51     for( int i = 0; i < 3; ++ i )
    52         for( int j = 0; j < 4; ++j )
    53             for( int k = 0; k < 5; ++k )
    54                 a[i][j][k] = No ++;
    55     for( int i = 0; i < 3; ++ i )
    56         for( int j = 0; j < 4; ++j )
    57             for( int k = 0; k < 5; ++k )
    58                 cout << a[i][j][k] << ",";
    59     return 0;
    60 }
  • 相关阅读:
    【APUE | 10】函数signal
    【C++ Primer | 15】C++虚函数表剖析②
    【C++ Primer | 15】C++类内存分布
    VMware虚拟机 Ubuntu 16.04 安装
    主题
    【C++ Primer | 15】构造函数与拷贝控制
    08 IO库
    001 库函数【01】
    DataTable序列化及反序列化Json
    DbHelper简单的使用
  • 原文地址:https://www.cnblogs.com/xuhaoforwards/p/9316916.html
Copyright © 2011-2022 走看看