#include <bits/stdc++.h>
using namespace std;
template<typename T>class myvector{
private:
int maxn=100,sizenow=0;
T * item = new T[maxn];
void update() {
maxn *= 2;
T * copied = new T[maxn];
for (register int i=0;i<sizenow;i++)
copied[i] = item[i];
delete[] item;
item = new T[maxn];
for (register int i=0;i<sizenow;i++) item[i] = copied[i];
delete[] copied;
}
public:
void push_back(const T& item0) {
if (sizenow==maxn-1) update();
item[sizenow] = item0;
++ sizenow;
}
void del(const int& pos) {
T end = item[sizenow-1];
sizenow--;
if (pos==sizenow-1) return;
for (register int i=pos;i<sizenow-1;i++){
item[i] = item[i+1];
}
item[sizenow-1] = end;
}
void pop_back() const {del(sizenow-1);}
void clear() {
maxn = 100;
delete[] item;
item = new T[maxn];
}
void print() {
for (register int i=0;i<sizenow;i++){
cout<<item[i]<<" ";
}
cout<<endl;
}
bool accuratefind(const int& starto,const int& endo,const T& item0) const {
for (int i=starto;i<sizenow;i++){
if (item[i]==item0) return true;
}
return false;
}
bool find(const T& item0) const {
return accuratefind(0,sizenow,item0);
}
T * begin() const {T * res = &item[0];return res;}
T * end() const {T * res = &item[sizenow-1];return res;}
int size() const {return sizenow;}
T operator [] (const int& n) const {
return this->item[n];
}
};
在push_back
和随机访问中快于std::vector
,请各位大佬提出改进建议