STL 之duque 与list
- deque 双端队列(另一篇博客实现过 https://www.cnblogs.com/lc-bk/p/11641498.html)动态开辟的二维数组,一维数组从2开始以2倍扩容连续,每次扩容后,原来二维的数组,从oldszie/2 开始存放,上下都预留空行,方便首位增加,二维数组之间不连续。
增加
- deq.push_back(val) O(1) 从末尾添加
- deq.push_front(val) O(1) 从头部添加
- deq.insert(val) O(n) 迭代器指向的位置添加
删除
- deq.pop_back() O(1) 从尾部删除
- deq.pop_front() O(1) 从头部删除
- deq.erase(it) O(n) 从迭代器的指向的位置删除
查找
iterotar 迭代器查询 (注意插入删除时的迭代器的失效问题)
- list双向链表
增加
- list.push_back(val) O(1) 尾部节点插入
- list.push_front(val) O(1) 头节点插入
- list.instert(it) O(1) 迭代器指向的位置添加 (会存在一个查询操作,链表的查询操作是O(n))
删除
- list.pop_back() O(1) 尾部删除
- list.pop_front() O(1) 头部删除
- list.erase(it) O(1) 删除迭代器指向的位置
查找
iteratar 遍历

浙公网安备 33010602011771号