C++实验报告四_运算符的重载、模板与STL
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实验报告
for(itor =vec.begin();itor!=vec.end();itor++){ cout<<*itor< } // 使用map来存储字符串键值对 map pair pair pair m.insert(p1); m.insert(p2); m.insert(p3); map // 打印map中数据 for(itor1=m.begin();itor!=m.end();itor++){ cout< cout< } return 0; } 调试过程及实验结果运算符重载 1、类中运算符重载(以负号运算符成员函数重载为例) 2、友元函数重载(以负号运算符友元函数重载为例) 3、特殊运算符的重载(++运算符重载(前置++)) (例一) (例二) 2、类模板与模板类的应用: 总结运算符的重载: (以下代码仅为说明总结知识点,并不完整,具体编程示例 2、关键字: template(模板)、typename/class 模板函数:通过函数模 板生成的函数 3、变量作为模板参数: 通过template来声明函数模板,传 入一个变量;其在真正使用时才会 将模板实例成真实的模板函数,才 是一个确定的值。Eg: display<10>( );打印出来的就是10 4、当有多个参数时: T、C都变成了函数 模板的参数。其中 一个参数T类型、 另一个参数的C类 型。使用时都要指 定出来 此时a为T类型;str为C类型。 5、typename和class可混用: 此时:typename用来定义数据类型T, 另一个变量是int型的size。使用: display 此时typename为int(T=int),size为5, 会打印出五个a. 6、函数模板与重载 左边三个函数模板均不同: 第一个:仅一个参数: a 第二个:两个参数 第三个:有一个参数,但模板 参数本身有两个:T、size; 三个函数模板可实例化出三 个模板函数:1、 display 2、display 4、display 2、类模板与模板类的应用 1、类内定义 模板关键字:template、数据类型参数关 键字:class。此时类内部用数据类型T定 义数据成员的指针、成员函数。 2、类外写法如下: 第一种:定义空向量;第二种:一个向量初始化另一个向量;第三种:v3中存储了n个i;第四种:初值已知(假设为x),说明有n个x 3、举例: vector vector vector vector < string > svec2=(ivec); vector vector 4、向量vector常用函数: int main(){ vector vec.push_pop();//此函数会抹掉10