Download presentation
Presentation is loading. Please wait.
1
01 C++ (Dynamic Array, Sort & STL)
1-3 Template Dynamic Array and Bubble Sort jjcao Mostly Based on the assignment of Professor Ligang Liu
2
Problem 现在Efficient的动态数组已经比较好了,用户使用起来很方便。但是,新的问题又出来了。
上述的动态数组只能存储double类型的数据。想象一下,另一个用户也想用这个动态数组,但是他处理的数据是int类型的,该如何办? 当然,你可以再写一个基于int类型的动态数组类,你发现,大部分的代码都不要改动,只要将类型double变成int即可。 如果另一个用户需要处理的是float类型,还有用户处理的是char类型的….该怎么办?
3
Solution 这样做的缺点很显然: 这些类的代码大同小异,代码冗余; 当对这个类进行修改时,改动的地方太多,不利于代码维护; 有无办法解决这个问题?即,如果能把变量的“类型”也当作一个“变量”,不就可以了吗?这个在C中是不能解决的,但是在C++中,有一种新的机制template,就可以解决上述问题。 Template的学习是“泛型编程”的基础,务必要掌握!
4
New Interface
5
New Interface
6
More Templates jj::TemplateArray<int> a(1);
typedef jj::TemplateArray<double> DBArray; DBArray b = a; //call copy constructor
7
A template project with requirements
实现hw03_TemplateDynamicArray_Template要求的高效动态数组 实现Bubble Sort算法 完成满足上述接口的动态数组(Dynamic array)的程序,递交工程文件(*.vcxproj, *.vcxproj.user, (旧的版本*.dsp)) 和源文件( *.h, *.cpp); 工程目录中的debug目录删除掉,其他文件压缩打包发给我,参照我们提供的code template。 评分标准 分数 程序成功运行(通过所有assert) 50 正确完成Bubble Sort算法 10 正确使用new/delete,不出现内存泄漏 需要遵循基本的编程规范和风格; 20 按时完整的提交项目文件,不包含无用文件 抄袭则 平均分配 成绩 =?/n hw02_EfficientDynamicArray_Template in
8
通过完成该作业需达到的目标: 体会template的好处
Similar presentations