【概述】
list 与 deque 是在程序设计中会用到的数据容器,STL提供了方便的链表、双端队列的实现,准确地说,STL 中的 list 与 deque不同于 pair、vector 等容器,而是对列表和双端队列这两个数据结构的重新包装。
【list 的使用】
list 定义在 <list> 头文件中,其提供了双链表的全部功能,即是一个线性链表结构,无需分配内存且可任意伸缩。
定义:list<type> listName
l.front():访问列表首元素l.back():访问列表尾元素l.empty():判断列表是否为空,当列表为空时返回 true,否则返回 falsel.size():访问列表中元素的个数l.begin():返回指向第一个元素的迭代器l.end():返回指向最后一个元素之后的迭代器l.erase(it):删除迭代器 it 所指元素并返回下一元素迭代器l.erase(it_begin,it_end):删除迭代器 [it_begin,it_end] 区间的元素并返回最后一个被删除的元素的下一元素迭代器l.insert(it,value):在迭代器 it 位置插入一个值为 value 的元素并返回其迭代器,原 it 及以后的元素后移l.insert(it,num,value):在迭代器 it 位置插入 num 个值为 value 的元素并返回其迭代器,原 it 及以后的元素后移
【deque 的使用】
deque 定义在 <deque> 头文件中,是一种具有队列和栈的性质的数据结构,双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。
定义:deque<type> dequeName
deque 的基本操作有:
q.push_back(x):入队,将 x 存入队列末端q.push_front(x):入队,将 x 存入队列首端q.pop_back():出队,将队列的末端元素弹出q.pop_front():出队,将队列的首段元素弹出q.front():访问队首元素q.back():访问队尾元素q.empty():判断队列是否为空,当队列为空时返回 true,否则返回 falseq.size():访问队列中元素的个数