编程题#1

来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)

注意: 总时间限制: 1000ms 内存限制: 65536kB

描述

实现一个三维数组模版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,

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

#include <iostream>
using namespace std;
// 在此处补充你的代码
int main()
{
CArray3D<int> a(3,4,5);
int No = 0;
for( int i = 0; i < 3; ++ i )
for( int j = 0; j < 4; ++j )
for( int k = 0; k < 5; ++k )
a[i][j][k] = No ++;
for( int i = 0; i < 3; ++ i )
for( int j = 0; j < 4; ++j )
for( int k = 0; k < 5; ++k )
cout << a[i][j][k] << ",";
return 0;
}

输入

输出

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,

样例输入

样例输出

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,

提示

提示:类里面可以定义类,类模版里面也可以定义类模版。例如:

class A
{
class B { };
}; template
class S
{
T x;
class K {
T a;
};
};

 #include <iostream>
using namespace std;
// 在此处补充你的代码
template <class T>
class CArray3D {
public:
template <class T1>
class CArray2D {
private:
T1 *a;
int i,j;
public:
CArray2D() {a = NULL;}
CArray2D(int a1, int a2):i(a1),j(a2) {
a = new T1[i*j];
}
~CArray2D() {
if (a != NULL) delete []a;
}
T1 *operator[](int a1) {
return a + a1*j;
}
};
CArray3D() {array2D = NULL;}
CArray3D(int a1, int a2, int a3) {
array2D = new CArray2D<T>*[a1];
for (int m = ; m < a1; ++m) {
array2D[m] = new CArray2D<T>(a2, a3);
}
}
CArray2D<T> &operator[](int i) {
return *array2D[i];
}
~CArray3D() {
if (array2D != NULL) delete []array2D;
}
private:
CArray2D<T> **array2D;
};
int main()
{
CArray3D<int> a(,,);
int No = ;
for( int i = ; i < ; ++ i )
for( int j = ; j < ; ++j )
for( int k = ; k < ; ++k )
a[i][j][k] = No ++;
for( int i = ; i < ; ++ i )
for( int j = ; j < ; ++j )
for( int k = ; k < ; ++k )
cout << a[i][j][k] << ",";
return ;
}

POJ C++程序设计 编程题#1 编程作业—文件操作与模板的更多相关文章

  1. POJ C++程序设计 编程题#3 编程作业—文件操作与模板

    编程题#3: 整数的输出格式 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 1000kB 描述 利 ...

  2. POJ C++程序设计 编程题#2 编程作业—文件操作与模板

    编程题#2: 实数的输出格式 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 1000kB 描述 ...

  3. Unix/Linux环境C编程入门教程(40) 初识文件操作

     1.函数介绍 close(关闭文件) 相关函数 open,fcntl,shutdown,unlink,fclose 表头文件 #include<unistd.h> 定义函数 int ...

  4. Unix/Linux环境C编程新手教程(40) 初识文件操作

     1.函数介绍 close(关闭文件) 相关函数 open,fcntl,shutdown.unlink,fclose 表头文件 #include<unistd.h> 定义函数 int ...

  5. POJ C++程序设计 编程题#4 字符串操作

    编程题#4: 字符串操作 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 给 ...

  6. POJ C++程序设计 编程题#1 编程作业—STL1

    编程题#1 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面的程序输出结 ...

  7. POJ C++程序设计 编程题#3 编程作业—多态与虚函数

    编程题 #3 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面的程序输出 ...

  8. POJ C++程序设计 编程题#2 编程作业—多态与虚函数

    编程题#2 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 下面程序的输出结果 ...

  9. POJ C++程序设计 编程题#1 编程作业—多态与虚函数

    编程题 #1 来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 下面程序的输出结果是: ...

随机推荐

  1. linux shell 参数传递

    在shell编程时.可以使用参数.Shell有位置参数和内部参数 1. 位置参数 由系统提供的参数称为位置参数.位置参数的值可以用$N得到,N是一个数字,如果为1,即$1.类似C语言中的数组,Linu ...

  2. C++学习9 this指针详解

    this 是C++中的一个关键字,也是一个常量指针,指向当前对象(具体说是当前对象的首地址).通过 this,可以访问当前对象的成员变量和成员函数. 所谓当前对象,就是正在使用的对象,例如对于stu. ...

  3. [ActionScript 3.0] AS3 GUID(全局唯一标识符)

    package com.controls { import flash.display.Sprite; import flash.system.Capabilities; public class G ...

  4. 破解ckfinder2.3 去除版本号和标题提示

    1.找到ckfinder.js 2.找到这样的字符串 <h4 class='message_content'></h4> 3.改成这样 <h4 style='displa ...

  5. 加载网络映射盘中的assembly失败

    我有一个网络映射盘,盘符是Z:.在Z盘下面,放了一个assembly,名为test.dll.然后,我在VS2010中建立了一个.NET 4.0的工程,程序中有下面一段代码: string dll = ...

  6. Codeforces 519E A and B and Lecture Rooms [倍增法LCA]

    题意: 给你一棵有n个节点的树,给你m次询问,查询给两个点,问树上有多少个点到这两个点的距离是相等的.树上所有边的边权是1. 思路: 很容易想到通过记录dep和找到lca来找到两个点之间的距离,然后分 ...

  7. [HDU 4585] Shaolin (map应用)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4585 题目大意:不停的插入数字,问你跟他相距近的ID号.如果有两个距离相近的话选择小的那个. 用map ...

  8. JQuery基础教程:入门

    JQuery能做什么 JQuery在线手册 1.取得文档中的元素 如果不使用JavaScript库,遍历DOM(Document Object Model,文档对象模型)树,以及查找HTML文档结构中 ...

  9. SparkSQL External Datasource简易使用之AVRO

    下载源码&编译: git clone https://github.com/databricks/spark-avro.git sbt/sbt package Maven GAV: group ...

  10. 64位Linux编译hadoop-2.5.1

    Apache Hadoop生态系统安装包下载地址:http://archive.apache.org/dist/ 软件安装目录:~/app jdk: jdk-7u45-linux-x64.rpm ha ...