双向队列 deque 和 list

双向队列 deque 和 list

效率l介于ist和vector之间,支持随机访问(比vector效率低,比list高),支持两端插入删除(效率比list低,比vctor高)内部分块存储,结构比较复杂,不做深究

1、需要高效的随即存取,不关心插入和删除的效率,用vector 2、大量的插入和删除,不关心随即存取,用list 3、既需要随即存取,又要两端数据的插入和删除,用deque。

双向队列
deque<T> q 初始化
q.size() 当前队列长度
q.front() 返回队头元素
q.back() 返回队尾元素
q.push_back() 队尾入队
q.pop_back() 队尾出队
q.push_front() 队头队
q.pop_front() 队头出队
q.begin() 返回正向队头迭代器
q.end() 返回正向队尾迭代器
q.rbegin() 返回正向队尾迭代器
q.rend() 返回反向队尾迭代器
[] 存在操作,但效率低

双向队列
deque<T> a 初始化
a.size() 当前list长度
a.front() 返回头部元素
a.back() 返回尾部元素
a.push_back() 尾部添加元素
a.pop_back() 尾部删除元素
a.push_front() 头部添加元素
a.pop_front() 头部删除元素
a.begin() 返回正向list迭代器
a.end() 返回正向list迭代器
a.rbegin() 返回正向list迭代器
a.rend() 返回反向list迭代器
a.resize() 重新分配大小
a.reverse() 翻转链表
a.insert(*it,value) 插入
a.erase(*it) 删除
a.unique() 去重
a.merge(list2) 合并
a.sort() 排序