vector相关知识点
deque的使用
在简单ready队列调度算法实验中,我们统一使用C++标准库中的deque容器作为队列使用(因为相对简单...)。
vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,当然,vector容器也可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。
deque容器和vector容器最大的差异,一在于deque允许使用常数项时间对头端进行元素的插入和删除操作。二在于deque没有容量的概念,因为它是动态的以分段连续空间组合而成,随时可以增加一段新的空间并链接起来。换句话说,像vector那样“旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”这样的事情在deque身上是不会发生的。也因此,deque没有必须要提供所谓的空间保留(reserve)功能。
在实际开发中,deque常用操作如下:
- size():取队列中元素的个数
- push_back(T elem):向队列尾部添加一个元素
- front():返回队列头部的一个元素(注意:该操作不将其从队列头部删除)
- pop_front():从队列头部弹出一个元素
当需要完成从队列头部取一个元素的操作时,一般首先调用front获取到该元素,然后再调用pop_front进行弹出。