请各位dalao看看本蒟蒻写的deque有什么问题吗?
或者提出一些Hack数据
struct deque
{
deque(int n) : q(n + 1), sz(0), maxsz(n) {}
void push_back(int x)
{
assert(sz < maxsz);
sz++;
q[tt++] = x;
if (tt == q.size()) tt = 0;
}
void push_front(int x)
{
assert(sz < maxsz);
sz++;
hh--;
if (hh == -1) hh = q.size() - 1;
q[hh] = x;
}
void pop_back()
{
assert(sz > 0);
sz--;
tt--;
if (tt == -1) tt = q.size() - 1;
}
void pop_front()
{
assert(sz > 0);
sz--;
hh++;
if (hh == q.size()) hh = 0;
}
int front()
{
assert(sz > 0);
return q[hh];
}
int back()
{
assert(sz > 0);
return q[tt - 1];
}
void print()
{
int t = hh;
while (t != tt)
{
cout << q[t] << ' ';
t++;
if (t == q.size()) t = 0;
}
cout << '\n';
}
int size()
{
return sz;
}
private:
vector<int> q;
int sz;
int maxsz;
int hh = 0, tt = 0;
};