双向队列 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() |