Programación orientada a objetos C ++ 036: Clase de plantilla de matriz tridimensional CArray3d que es difícil de confundir ---- (Beijing University Mooc)
#include<iostream>#include<iomanip>#include<cstring>usingnamespace std;template<classT>classCArray3D{
// 在此处补充你的代码};
CArray3D<int>a(3,4,5);
CArray3D<double>b(3,2,2);voidPrintA(){
for(int i =0;i <3;++i){
cout <<"layer "<< i <<":"<< endl;for(int j =0; j <4;++j){
for(int k =0; k <5;++k)
cout << a[i][j][k]<<",";
cout << endl;}}}voidPrintB(){
for(int i =0;i <3;++i){
cout <<"layer "<< i <<":"<< endl;for(int j =0; j <2;++j){
for(int k =0; k <2;++k)
cout << b[i][j][k]<<",";
cout << endl;}}}intmain(){
int No =0;for(int i =0; i <3;++ i ){
a[i];for(int j =0; j <4;++j ){
a[j][i];for(int k =0; k <5;++k )
a[i][j][k]= No ++;
a[j][i][i];}}PrintA();memset(a[1],-1,20*sizeof(int));memset(a[1],-1,20*sizeof(int));PrintA();memset(a[1][1],0,5*sizeof(int));PrintA();for(int i =0; i <3;++ i )for(int j =0; j <2;++j )for(int k =0; k <2;++k )
b[i][j][k]=10.0/(i+j+k+1);PrintB();int n = a[0][1][2];double f = b[0][1][1];
cout <<"****"<< endl;
cout << n <<","<< f << endl;return0;}
Implementación del código (es realmente difícil de entender a fondo y lleva mucho tiempo)