读书人

访问deque的元素,时间是O(1)吗?解决方

发布时间: 2012-06-12 14:21:25 作者: rapoo

访问deque的元素,时间是O(1)吗?
vector的存储是连续的,支持随机访问,O(1)的访问效率。

但是deque的实现C++标准有没有规定是如何存储的? 如果是分片连续存储的话,那么访问效率就不是O(1)了啊。

这个有没有确定的说法?

[解决办法]
deque不是随机的, 因为是chunk list,每个chunk是一个大结构体,next,prev指向下一个和后一个chunk,但绝对不是挨个元素遍历,是逐个chunk的跳过去,最后在某个chunk内O(1)。
[解决办法]
http://en.cppreference.com/w/cpp/container/deque
访问效率是0(1)

读书人网 >C++

热点推荐