一. 题目
1. 模仿C++中的向量模板(vector),设计一个自己的向量模板类MyVector,能够处理不同类型的数据,要求至少能够实现如下功能:
1)初始化:
(1) MyVector <类型说明符> 向量名(长度); //缺省初值为0
(2) MyVector <类型说明符> 向量名(长度,初值);
(3) MyVector <类型说明符> 向量名1(向量2);
(4) MyVector <类型说明符> 向量名1(向量2元素地址1,向量2元素地址2);
2)向量元素的访问:
(1) at函数 格式:向量.at(下标)
(2) [ ]运算符 格式:向量[下标]
作用:返回下标所对应的元素。
3)可以进行的操作:
(1) begin
格式:向量.begin()
作用:得到向量第一个元素的地址。
(2) back
格式:向量.back()
作用:得到向量的最后一个元素的值。
(3) capacity
格式:向量.capacity()
作用:得到向量所能容纳元素的总个数。
(4) clear
格式:向量.clear()
作用:删除向量中的所有元素,使向量成为空向量。
(5) empty
格式:向量.empty()
作用:判断向量是否为空,若为空则返回true,否则返回false。
(6) end
格式:向量.end()
作用:返回向量最后一个元素的后继地址。
(7) erase
格式:向量.erase(元素地址);
或 向量.erase(元素地址1,元素地址2);
作用:删除指定地址的元素或指定地址范围[元素地址1,元素地址2)内的元素。注意指定删除的地址不能越界。
(8) front
格式:向量.front()
作用:得到向量第一个元素的值。
(9) insert
格式:向量.insert(元素地址,待插入数据)
或 向量1.insert(元素地址,向量2的元素地址1,向量2的元素地址2)
作用:在向量指定地址之前插入一个数据或插入另一个向量中指定地址范围[元素地址1,元素地址2)的元素,返回新插入的第一个元素的地址。若被插入向量空间不够,则需要增加空间。
(10) pop_back
格式:向量.pop_back()
作用:删除向量的最后一个元素。
(11) push_back
格式:向量.push_back(数据)
作用:在向量最后增加一个元素。
(12) size
格式:向量.size()
作用:得到向量中实际存储元素的数目。
(13) swap
格式:向量1.swap(向量2)
作用:交互向量1和向量2的元素。
(14) =
格式:向量1=向量2
作用:将向量2的元素赋值给向量1。
(15) sort
格式:向量.sor()
作用:将向量中的元素由小到大排序。
将类模板及其函数实现一并定义为头文件,主程序与模板头文件分离