Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1413985
  • 博文数量: 241
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 2253
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-11 22:27
个人简介

--

文章分类

全部博文(241)

文章存档

2021年(3)

2019年(6)

2018年(1)

2017年(9)

2016年(21)

2015年(50)

2014年(125)

2013年(26)

我的朋友

分类: C/C++

2014-03-08 15:51:02

1、简介
STL中提供的三种适配器可以由某一种顺序容器去实现。默认下stack 和queue 基于deque  容器实现,priority_queue  则基于vector 容器实现。当然在创建一个适配器时也可以指定具体的实现容器,创建适配器时在第二个参数上指定具体的顺序容器可以覆盖适配器的默认实现。 由于适配器的特点,一个适配器不是可以由任一个顺序容器都可以实现的。  

2、栈stack
特点是后进先出,所以它关联的基本容器可以是任意一种顺序容器,因为这些容器类型结构都可以提供栈的操作有求,它们都提供了push_back  、pop_back 和back  操作。 
 
操作函数:
1).empty() 堆栈为空则返回真 
2).pop() 移除栈顶元素 
3).push() 在栈顶增加元素 
4).size()  返回栈中元素数目 
5).top() 返回栈顶元素 

3、队列queue
特点是先进先出,适配器要求其关联的基础容器必须提供pop_front 操作,因此其不能建立在vector 容器上。 

 操作函数:  
1).back() 返回一个引用,指向最后一个元素 
2).empty() 如果队列空则返回真 
3).front() 返回第一个元素 
4).pop() 删除第一个元素 
5).push() 在末尾加入一个元素 
6).size()  返回队列中元素的个数 

4、优先队列priority_queue
 C++优先队列类似队列,但是在这个数据结构中的元素按照一定的断言排列有序。 默认是降序排列,
less    这是按值大的优先 greater这是按值小的优先,
priority_queue> 默认的是从大到小排序
操作方法:
1).empty() 如果优先队列为空,则返回真 
2).pop() 删除第一个元素 
3).push() 加入一个元素 
4).size()  返回优先队列中拥有的元素的个数 
5).top() 返回优先队列中有最高优先级的元素 
阅读(766) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~