deque的数据结构更为复杂,还包含了map节点,但是相比list每个节点均需要额外指针而言,其内存占用量还是较少。所以deque数据部分消耗的内存空间大小应该在vector和list之间。 需要说明的是,stack和queue的内部实现均基于deque实现,queue只能头删尾进,stack只能尾删尾进,这都是deque所支持的操作的特殊情况,或者说一个子集。
8. deque与vector组织内存的方式不一样。在底层,deque按“页”(page)或“块”(chunk)来分配存储器,每页包含固定数目的元素。而vector只分配一块连续的内存。例如,一个10M字节的vector使用的是一整块10M字节的内存,而deque可以使用一串更小的内存块,比如10块1M的内存。所以不能将deque的地址(如&deque[0])传递给...
deque是在功能上合并了vector和list。 优点:(1) 随机访问方便,即支持[ ]操作符和vector.at() (2) 在内部方便的进行插入和删除操作 (3) 可在两端进行push、pop 缺点:(1) 占用内存多 使用区别: 1 如果你需要高效的随即存取,而不在乎插入和删除的效率,使用vector 2 如果你需要大量的插入和删除,而不关心随即...