所以我有这个deque
deque <int> a[1001];
只需使用
添加元素即可a[i].push_back(val);
使用
删除它们a[i].pop_front();
如果我使用a[1001]
它的效果很好,如果我使用a[10001]
则需要几秒钟,如果我使用a[100001]
则需要30秒才能执行程序。
问题在于,在每种情况下我都只有5个val的push_back,唯一的区别是deque的大小。
为什么?
我只需要从前面擦除元素,有更好的方法吗? :d
哦,还有,push_backed元素使用了多少字节?:D(在这种类型的双端队列中)
答案 0 :(得分:3)
deque<int> a[1001];
它不是1001的双端队列,而是1001个deques,每个都必须初始化和破坏,因此速度慢。你可以像这样创建一个双端队列:
deque<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(5);
a.push_back(7);
a.pop_back(); // ...