代码:
#include <iostream>
#include <string>
using namespace std;
template<typename T>
class My_vector
{
private:
int sum;
int count;
T *value;
public:
My_vector():sum(0),count(0),value(NULL){} //无参构造
My_vector(int n,const T &val)//有参构造,输入要初始化的个数,以及内容列入(3,'a');初始化后aaa
{
this->value=new T[n];
cout<<"hello"<<endl;
this->count=n;
this->sum=n;
cout<<"hello"<<endl;
for(int i=0;i<n;i++)
memcpy(this->value+i,&val,sizeof(val));
cout<<this->value[2];
cout<<"hello"<<endl;
}
My_vector(const My_vector &from) //拷贝构造,深拷贝
{
this->count=from.count;
this->value=new T[from.count]; //申请一块同类型大小的空间
this->sum=from.count;
memcpy(this->value,from.value,this->count*sizeof (T));
}
T &operator[](int index){return this->value[index];}
My_vector(T *start,T *end) // 迭代器
{
int n=end-start;
this->value=new T[n];
this->sum=n;
memcpy(this->value,start,n*sizeof(T));
this->count