访问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)