#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<limits>
#include<cstring>
using namespace std;
template <class T>
class myVector
{
private:
T* data;
int len;
int size;
public:
myVector()
{
data = NULL;
len = size = 0;
}
myVector(int _len)
{
data = new T[_len];
len = _len;
size = 0;
}
myVector(const myVector& tmp)
{
if(this == &tmp)
return;
//delete []data;
data = new T[tmp.len];
for(int i=0; i<tmp.size; ++i)
data[i] = tmp.data[i];
len = tmp.len;
size = tmp.size;
}
T& operator[](int index)
{
return data[index];
}
const myVector& push_back(const T tmp)
{
if(size >= len)
{
T* newData = new T[len*2 + 1];
memcpy(newData, data, len*sizeof(T));
delete []data;
data = newData;
len = 2*len + 1;
}
data[size++] = tmp;
printALL();
return *this;
}
int getSize()
{
return size;
}
void printALL()
{
cout<<len<<":"<<size<<endl;
for(int i=0; i<size; ++i)
cout<<data[i].f<<" ";
cout<<endl;
cout<<"********************"<<endl;
}
};
struct A{
int f;
public:
A(int r):f(r){}
A()
{
f =1;
}
};
int main()
{
myVector<A> v;
v.push_back(A(2));
v.push_back(A(3));
v.push_back(A(4));
v.push_back(A(5));
v.push_back(A(6));
//node* head = buildTree();
//cout<<i<<"q";
//system("pause");
return 0;
}
手写Vector代码
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- https://www.cnblogs.com/zaoansijia/p/4513897.html.myslide...
- 安卓开发中有个很好的静态代码分析工具AndroidLint(已集成在AndroidStudio中),当你代码写的差...