std::queue类不清楚size成员函数的复杂性。它似乎是基于当时使用的数据结构实现。
人们会假设size将是O(C),但它完全有可能是O(N)。显然,我可以保持自己的尺寸,但我宁愿打电话给size。
(问题修改):由于deque是默认容器,那么std::deque::size()的O()是什么?
发布于 2014-02-12 07:26:48
std::queue::size精确地在C++11 23.6.3.1/1中指定:
size_type size() const { return c.size(); }其中c是一个protected数据成员,其类型是第二个模板参数的类型。因此,它的复杂度正是该模板参数的size成员函数的复杂性。默认的是std::deque<T>,其中T是传递给std::queue的第一个模板参数,它具有默认的O(1)复杂性要求,除非另有规定(23.2.1中的表96 )。
https://stackoverflow.com/questions/21713940
复制相似问题