C++面向对象实验三:模板与STL
2016-11-24 17:28
381 查看
C++面向对象实验三:模板与STL
一、实验目的
掌握模板函数和模板类的定义、实例化,学会应用模板来处理函数调用面临的不同的数据类型。理解模板类的定义和实例化时的方法。
复习栈的出栈和入栈的相关操作。
二、实验要求
内容1:使用函数模板,求两个数的最大值。 例如:max(3,5)则输出5 max(’3’,’5’)则输出‘5’ max(3.0,5.0)则输出5.0 max(”3”,”5”)则输出”5”
内容2:
设计一个CStudent类,可以存放学生的学号和姓名(其中,学号和姓名都为字符串)例如,学号为{“1001”,”1002” ,”1003” }这3个学号所对应的姓名是{“张三”,”李四” ,”王五” } 如果cs是CStudent类的对象,
三、实验过程
算法:定义一个单独的函数Max_(T a,T b);
public部分:输入a,b; if (strcmp(a,b)>=0) 进行下标的安全检查,超出范围就退出程序 求两个T类型数最大值 { 返回主函数。 }
内容2: 算法:
定义一个类Class(CStudent)
private部分: 输入no_name
Public部分: 张三赋值1001; 李四赋值1002; 王五赋值1003; 最后输出”查无此人”; 返回主函数 ;
四、源码
#include<iostream> using namespace std; template<typename T> T max(T a,T b) { return a>b ? a:b; } char * max(char *a,char* b) { if (strcmp(a,b)>=0) { return a; } else { return b; } } int main() { cout<<"max(3,5)="<<max(3,5)<<endl; cout<<"max(\'3\',\'5\')="<<max('3','5')<<endl; cout<<"max(3.0,5.0)="<<max(3.0,5.0)<<endl; cout<<"max(\"3\",\"5\")="<<max("3","5")<<endl; cout<<"max(\"abc\",\"ABC\")="<<max("abc","ABC")<<endl; return 0; } #include<iostream> #include<string> #include<map> #include<algorithm> using namespace std; class CStudent { private: map<string,string> no_name; public: CStudent() { no_name["1001"]="张三"; no_name["1002"]="李四"; no_name["1003"]="王五"; } string operator[](string index) { int ic=no_name.count(index); if (ic!=0) return no_name[index]; else return "查无此人"; } }; int main() { CStudent cs; cout<<cs["1001"].c_str()<<endl; cout<<cs["1004"].c_str()<<endl; return 0; }
相关文章推荐
- C++面向对象实验(二)
- C++ 面向对象程序设计上机练习二(函数模板)
- C++ 面向对象实验(三)
- C++面向对象实验(五)
- 【C++ 函数模板】SDUT-1141 面向对象程序设计上机练习二(函数模板)
- C++面向对象实验二:类与对象
- C和C++的面向对象专题(5)——合理使用模板,避免代码冗余
- C++面向对象实验(六)(完结)
- C++模板、面向对象内容补充
- c++ 命名空间 以及 作用域 函数参数 面向对象实验报告
- C++ STL开发温习与总结(四): 4.C++面向对象机制的实现
- C++面向对象实验四:超市管理系统
- c++面向对象实验一:运算符重载
- C++面向对象实验(四)
- C++面向对象实验(一)
- 高级语言程序设计实验大纲 面向对象程序设计实验大纲
- 《面向对象基础:C++实现》学习笔记之八
- java和c++在面向对象上有什么区别?
- 比较java和C++的面向对象语法
- C++面向对象特性实现机制的初步分析 Part1