急求下面C++编程题的答案,望大神解答,拜谢
用类模板定义一个动态数组类vector,定义为:templateclassvector{};具有与SLT的vector类模板相似的功能,是一个能够存放任意类型的动态数组,...
用类模板定义一个动态数组类vector,定义为: template class vector { }; 具有与SLT的vector类模板相似的功能,是一个能够存放任意类型的动态数组,能够增加和压缩数据。功能要求: 1、构造函数、复制构造函数、移动复制构造函数、析构函数: vector c 创建一个空的vector。 vector c1(c2) 复制一个vector,或移动复制一个vector。 vector c(n) 创建一个vector,含有n个数据,数据均已缺省构造产生。 vector c(n, elem) 创建一个含有n个elem拷贝的vector。 ~ vector () 销毁所有数据,释放内存。 2、功能函数:函数 表述 c.at(idx) 传回索引idx所指的数据,如果idx越界,抛出out_of_range。 c.clear() 移除容器中所有数据。 c.empty() 判断容器是否为空。 c.erase(pos) 删除pos位置的数据 。 c.insert(pos,elem) 在pos位置插入一个elem拷贝。 c.max_size() 返回容器中最大数据的数量。 c.pop_back() 删除最后一个数据。 c.push_back(elem) 在尾部加入一个数据。 c.resize(num) 重新指定队列的长度。 c.size() 返回容器中实际数据的个数。 函数表述 c.at(idx)传回索引idx所指的数据,如果idx越界,抛出out_of_range。 c.clear()移除容器中所有数据。 c.empty()判断容器是否为空。 c.erase(pos) 删除pos位置的数据 。 c.insert(pos,elem) 在pos位置插入一个elem拷贝。 c.max_size()返回容器中最大数据的数量。 c.pop_back()删除最后一个数据。 c.push_back(elem)在尾部加入一个数据。 c.resize(num)重新指定队列的长度。 c.size()返回容器中实际数据的个数。 3、运算符重载函数:函数 描述 operator[int idx] 下标运算符重载,返回容器中指定idx位置元素的一个引用。 operator= 赋值运算符,移动赋值运算符重载 operator== 相等关系运算符重载,两个对象完全相等返回true 函数描述 operator[int idx]下标运算符重载,返回容器中指定idx位置元素的一个引用。 operator=赋值运算符,移动赋值运算符重载 operator==相等关系运算符重载,两个对象完全相等返回true 4、异常处理(1)对所有内存申请进行判断,若申请失败,则抛出异常。(2)对所有数组下标和位置访问进行判断,若越界,则抛出异常。(3)main函数中对测试代码进行监控,对以上这两种异常情况分别进行不同的处理。
展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询