C++实验报告四_运算符的重载、模板与STL

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程实验报告

for(itor =vec.begin();itor!=vec.end();itor++){ cout<<*itor<

}

// 使用map来存储字符串键值对

map m;

pair p1("S","SHANGHAI");

pair p2("B","BEIJING");

pair p3("G","GUANGZHOU");

m.insert(p1);

m.insert(p2);

m.insert(p3);

map::iterator itor1;

// 打印map中数据

for(itor1=m.begin();itor!=m.end();itor++){ cout<first<

cout<second<

}

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(15);

此时typename为int(T=int),size为5,

会打印出五个a.

6、函数模板与重载

左边三个函数模板均不同:

第一个:仅一个参数: a

第二个:两个参数

第三个:有一个参数,但模板

参数本身有两个:T、size;

三个函数模板可实例化出三

个模板函数:1、

display(10);

2、display(10,20);

4、display(30);这三个函数之间就形成了重载

2、类模板与模板类的应用

1、类内定义

模板关键字:template、数据类型参数关

键字:class。此时类内部用数据类型T定

义数据成员的指针、成员函数。

2、类外写法如下:

第一种:定义空向量;第二种:一个向量初始化另一个向量;第三种:v3中存储了n个i;第四种:初值已知(假设为x),说明有n个x

3、举例:

vector ivec1;

vector ivec2=(ivec1);

vector svec1;

vector < string > svec2=(ivec);

vector ivec4(10,-1);//10个-1初始化ivec4

vector svec(10,”hi! ”);//10个字符串初始化向量svec

4、向量vector常用函数:

int main(){

vector vec;//向量vector,变量vec,传入参数为int vec.push_back(10);//vec调push_back会在当前尾部插入10

vec.push_pop();//此函数会抹掉10

相关文档
最新文档