C++ 如果未使用deques slowes程序?

C++ 如果未使用deques slowes程序?,c++,performance,size,deque,C++,Performance,Size,Deque,所以我有这个德克 deque <int> a[1001]; 并使用 a[i].pop_front(); 如果我使用a[1001]它工作得很好,如果我使用a[10001]它需要几秒钟,如果我使用a[100001]它需要大约30秒来执行程序 问题是,在每种情况下,我只会像5瓦耳一样向后推,唯一的区别是deque的大小 为什么 我只需要删除前面的元素,有更好的方法吗D 哦,还有,一个push_-backed元素使用了多少字节?:D(在这种类型的deque中)deque a[1001];

所以我有这个德克

deque <int> a[1001];
并使用

a[i].pop_front();
如果我使用
a[1001]
它工作得很好,如果我使用
a[10001]
它需要几秒钟,如果我使用
a[100001]
它需要大约30秒来执行程序

问题是,在每种情况下,我只会像5瓦耳一样向后推,唯一的区别是deque的大小

为什么

我只需要删除前面的元素,有更好的方法吗D

哦,还有,一个push_-backed元素使用了多少字节?:D(在这种类型的deque中)

deque a[1001];
它不是大小为1001的deque,而是1001个deque,每个deque都必须初始化和销毁,因此速度较慢。您可以创建一个如下所示的图案:

deque<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(5);
a.push_back(7);
a.pop_back(); // ...
deque a;
a、 推回(2);
a、 推回(3);
a、 推回(5);
a、 推回(7);
a、 向后弹出();/。。。
deque a[1001];
它不是大小为1001的deque,而是1001个deque,每个deque都必须初始化和销毁,因此速度较慢。您可以创建一个如下所示的图案:

deque<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(5);
a.push_back(7);
a.pop_back(); // ...
deque a;
a、 推回(2);
a、 推回(3);
a、 推回(5);
a、 推回(7);
a、 向后弹出();/。。。

这正是我需要的,1001个deques。。。那么,我能创建100001个deques(或者任何允许我删除前面的内容)的最好方法是什么呢。我想我应该创建一个deques向量,所以它只使用程序需要的数量?那么我不理解你的抱怨。是的,做一件事N次需要O(N)时间。在您的例子中,您创建了N个deques,因此需要O(N)个时间。如果你真的需要不止一个deque(我怀疑),那么是的,准确地创建你需要的数字。这就是我需要的,1001个deque。。。那么,我能创建100001个deques(或者任何允许我删除前面的内容)的最好方法是什么呢。我想我应该创建一个deques向量,所以它只使用程序需要的数量?那么我不理解你的抱怨。是的,做一件事N次需要O(N)时间。在您的例子中,您创建了N个deques,因此需要O(N)个时间。如果您确实需要不止一个deque(我怀疑),那么是的,请准确地创建您需要的数字。
deque
是正确的结构,无论您访问第一个deque还是第10000个deque,在deque的实例中,时间应该相同,操作当然取决于有多少个条目-您确定pop和push操作占用的时间吗?您在这里实际要完成什么?100001德克斯疯了!我有100.001个不同的键,对于每个键,我必须添加和删除值。你有更好的解决办法吗\Cristy:将所有这些键都保存在内存中听起来很难-尝试使用数据库-可能是sqlite3?旁注,在调试模式下编译和运行它将比在发行版中慢得多。
deque
是正确的结构,无论您访问第一个deque还是第10000个,时间都应该相同,在deque的实例中,操作当然取决于有多少个条目-您确定pop和push操作占用的时间吗?您在这里实际要完成什么?100001德克斯疯了!我有100.001个不同的键,对于每个键,我必须添加和删除值。你有更好的解决办法吗\克里斯蒂:把所有这些键都保存在内存中听起来很难——试着改用数据库——也许是sqlite3?旁注,在调试模式下编译和运行它会比在发行版中慢得多。
deque<int> a;
a.push_back(2);
a.push_back(3);
a.push_back(5);
a.push_back(7);
a.pop_back(); // ...