这是题目以及输入输出大概要求
第三题:
我想问的是,通过add方式动态分配,是不是在里面一直new一个数组比原来长度多一,然后通过复制两个数组实现,但是我的代码跑出来一直没东西
:我的代码如下
#ifndef VECTOR_H
#define VECTOR_H
#include<iostream>
#include<vector>
using namespace std;
template <class T>
class Vector
{
public:
Vector()
{
lenth=0;
}
~Vector()
{
delete []date;
}
T& operator [](int i)//重载运算符[]
{
return date[i];
}
T add(T i);
int remove(T j);
int get_size()
{
return lenth;
}
private:
T* date;
int lenth;
};
template<class T> T Vector<T>::add(T i) //添加元素
{
int num;
num=(lenth==0)?1:lenth*2;//动态分配内存 当数组空时,动态分配一个;数组不为空时,为了复制拼接 长度变大
vector <T>newdate(num);
for(int j=0;j<num;j++)
newdate[j]=date[j];
newdate[lenth]=i;
lenth=lenth+1;
delete[] date;
date=newdate;
return date[lenth-1];
}
template<class T> int Vector<T>::remove(T j)//删除元素
{
if(j>lenth||j<0)
return 1;
for(int i=j;i<lenth;i++)
date[i]=date[i+1];
lenth=lenth-1;
}
#endif
求解决题目的代码答案