- 1、本文档共58页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2021/2/7 * 模板 (template) 定义 适合多种数据类型的类定义或算法,在特定环境下通过简单地代换,变成针对具体某种数据类型的类定义或算法 2021/2/7 * 用模板定义用于排序的数据表类 #include iostream.h template class Type class dataList { private: Type *Element; int ArraySize; void Swap (int m1, int m2); int MaxKey (int low, int high); 2021/2/7 * public: dataList (int size = 10) : ArraySize (size), Element (new Type [Size]) { } ~dataList ( ) {delete [ ] Element;} void Sort ( ); friend ostream operator (ostream outStream, datalistType outList); friend istream operator (istream inStream, datalistType inList); } 2021/2/7 * 类中所有操作作为模板函数的实现 #include “datalist.h” template class Type void dataList Type :: Swap (int m1, int m2) { //交换由m1, m2为下标的数组元素的值 Type temp = Element [m1]; Element [m1] = Element [m2]; Element [m2] = temp; } 2021/2/7 * template class Type int dataListType:: MaxKey (int low, int high) { //查找数组Element[low]到Element[high] //中的最大值,函数返回其位置 int max = low; for (int k = low+1, k = high, k++) if ( Element[max] Element[k] ) max = k; return max; } 2021/2/7 * template class Type ostream operator (ostream OutStream, dataListType OutList) { OutStream “数组内容 : \n”; for (int i = 0; i OutList.ArraySize; i++) OutStream OutList.Element[i] ‘ ’; OutStream endl; OuStream “数组当前大小 : ” OutList.ArraySize endl; return OutStream; } 2021/2/7 * template class Type istream operator (istream InStream, dataListType InList) { cout “录入数组当前大小 : ”; Instream InList.ArraySize; cout “录入数组元素值 : \n”; for (int i = 0; i InList.ArraySize; i++) { cout “元素” i “:” ; InStream InList.Element[i]; } return InStream; } 2021/2/7 * template class Type void dataListType::Sort ( ) { //按非递减顺序对ArraySize个关键码 //Element[0]到Element[ArraySize-1]排序 for ( int i = ArraySize -1; i
文档评论(0)