【发布时间】:2014-03-09 22:51:42
【问题描述】:
std::queue 类不清楚size 成员函数的复杂性。它似乎是基于当时使用的数据结构实现。
有人会假设size 是O(C),但它完全有可能是O(N)。显然,我可以保持自己的尺寸,但我宁愿直接打电话给size。
(问题已修改):既然deque是默认容器,那么std::deque::size()的O()是多少?
【问题讨论】:
-
所有标准容器的
size()函数必须是常数时间。请参阅 [container.requirements.general]。 -
C++11 要求所有容器的 size() 为 O(1)。不过,我相信这在以前不是强制性的。
-
@chris Not
forward_list. -
@juanchopanza,好点子。参考资料(和标准)甚至明确表示它满足所有要求,但
size()。
标签: c++ data-structures queue big-o