stl的vector太慢了
还是手写的好
upd: 有一件很神奇的事情,就是我第一次pb的时候会分配0的空间,似乎是不对的,但我已经用了多次且没有出锅。。。
但还是多分配一个空间好了
#include<bits/stdc++.h>
using namespace std;
template<typename T>
struct vec
{
T *a;
int n;
void clear()
{
//if (n>0) {free(a);a=0;}
n=0;
}
void pb(const T &x)
{
if((n&-n)==n)//a=(T*)realloc(a,(n*2+1)*sizeof(T));
{
T *_a=new T [n*2+1];
memcpy(_a,a,n*sizeof(T));
a=_a;
}
a[n++]=x;
}
};
vec<int> a;
#define fore(arr) for(auto it=arr.a,end=it+arr.n;it!=end;++it)
int main()
{
a.pb(1);
fore(a) printf("%d\n",*it);
a.clear();
a.pb(2);
fore(a) printf("%d\n",*it);
}