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 }
  • 相关阅读:
    选择器的区别
    固定DIV样式
    图片自适应不变形
    CSS实现图片在div a标签中水平垂直居中
    2017年校招全国统一模拟笔试 页码统计
    LeetCode 23. Merge k Sorted Lists
    LeetCode 15. 3Sum
    LeetCode 12. Integer to Roman
    LeetCode 11. Container With Most Water
    LeetCode 8. String to Integer (atoi)
  • 原文地址:https://www.cnblogs.com/xuhaoforwards/p/9316916.html
Copyright © 2011-2022 走看看