水平不够写得和stl差远了。。只能说是基本实现其功能吧。。。现在对c++的了解基本是0,等以后系统学习之后也许会慢慢完善。
时隔多年我来吐槽一下,我当年真是个弱智,连析构函数都没写…至于这个为啥不更新了,主要是我觉着我要学的还很多,再加上不想重复造轮子…不过最近在尝试用oop写一些acm模板,等再测试一下正确性后也许会放到博客来(以后写的东西大概会先发布到个人网站santongding.com)
vector
template <typename type>
struct vtr{
type *s,*e;
unsigned int memsize,cnt;
vtr(int n=0){
memsize=std::max(n,2);
e=s=new type [memsize];
cnt=n;
}
void push_back(type v){
if(cnt==memsize){
memsize<<=1;
type *tp=new type[memsize];
memcpy(tp,s,sizeof(type)*cnt);
delete []s;
e=(s=tp)+cnt;
}
*(e++)=v;
cnt++;
}
type & operator [] (int v){
return *(s+v);
}
int size(){
return cnt;
}
};
实测常数大概是纯数组的2倍左右,stl::vector大概是3~4倍常数。