deque,list,queue,priority_queue

1.deque数据结构

 

deque双端队列容器与vector同样,采用线性表顺序存储结构,但与vector惟一不一样的是,deque采用分块的线性存储结构来存储数据,每块的大小通常为512字节,称为一个deque块,全部的deque使用一个map块进行管理,每一个map数据项记录各个deque块的首地址,这样一来,deque块在头部和尾部均可以插入和删除元素,而不须要移动其它元素,在尾部插入元素使用push_back(),在头部插入使用push_front(),在中间插入使用insert(),可是在中间插入只是覆盖原来位置的元素,并不会新增长元素。函数

 

而删除元素一样分为头,尾,中,删除头部元素用pop_front(),删除尾部元素用pop_back(),而删除中间的元素就用erase().spa

 

 

2.list指针

 

list容器实现了双向链表的数据结构,数据元素是经过链表指针串连成逻辑意义上的线性表,这样,对链表的任意位置进行插入,删除和查找都是极快速的。排序

 

一样的,往链表的容器中插入元素跟deque同样,也是使用push_back,push_front,insert();队列

而remove()是删除链表中的一个元素,值相同的都会被删除,pop_front删除头元素,pop_back()删除尾元素,erase()是删除迭代器位置上的元素。rem

 

另外,list还有sort()排序函数,还有unique()方法,能够剔除连续重复元素,只保留一个。it

 

 

3.stack堆栈容器io

 

这个没有什么好说的,操做主要有:push(),empty(),top()(读取栈顶元素),pop()容器

 

 

4.queue队列容器

 

也没有什么说的。

 

 

5.priority_queue优先队列容器

 

priority_queue优先队列容器与队列同样,只能从队尾插入元素,从队首删除元素,可是它有一个特性,就是队列中最大的元素老是位于队首,因此出队时,并不是按照先进先出的原则进行,而是将当前队列中最大的元素出队,这点相似于给队列里的元素进行了由大到小的顺序排序,默认规则是从小到大,固然,能够重载"<"来从新定义规则。