STL中的栈和队列.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STL中的栈和队列.ppt

3.3可用资源——STL中的栈和队列 参考书: 1.左飞编《数据结构原理与经典问题求解》电子, 2008.10 2.P.J.PLAUGER等著 王昕译 《C++ STL中文版》电力, 2002.5 3.翁惠玉《数据结构:思想与实现》高教, 2009.8 章小莉 北京电子科技学院 计算机科学与技术系 3.3 STL中的栈和队列 3.3.1 STL中的stack 1 stack类提供的常用方法 2 stack类的使用举例 3.3.2 STL中的queue 1 queue类提供的常用方法 2 queue类的使用举例 STL的适配器 STL中的stack类是一种适配器,是通过简单地修饰线性类deque的接口而获得的另一种容器类。 适配器(Adaptor):一种设计模式,可以将一个类的接口转换为另一个类的接口,使原本因接口不相容而不能合作的类可以一起运行。 STL中的适配器是用来修改其他组件接口的STL组件,是带有一个参数的类模板。 STL包括3种适配器: 容器适配器; 迭代器适配器; 函数适配器; 3.3.1 STL中的stack (1)stack类提供5种常用方法 (2)stack类的使用举例 举例1:int栈的使用 #include iostream #include fstream #include string #include cstdlib #include stack using namespace std; int main(){ ifstream inf; inf.open(temp.txt); if (!inf) { cerrcannot open file for input!endl; return EXIT_FAILURE; } stack string s; string line; while (getline(inf,line)){//读入一行文本 s.push(line); //压入栈 } inf.close(); while (!s.empty()){//栈不空,输出栈顶元素 couts.top()endl; s.pop(); //弹栈} return 0; } 3.3.2 STL中的queue (1)queue类也是容器适配器,与stack相同,修饰deque而来。主要提供6种常用方法 (2)queue类的使用举例 举例1:int队列的使用 #include iostream #include cstdlib #include queue using namespace std; bool existOrNot(int num, queue int myQueue) { while (!myQueue.empty()) { if (myQueue.front()==num) return true; else myQueue.pop(); } return false;} int main() { queue int memQueue; int times=12; int tmpValue; int page[ ]={4,3,2,1,4,3,5,4,3,2,1,5};//页面调度序列 for (int i=0; i12; i++){ if (memQueue.size()3) memQueue.push(page[i]); else { if (existOrNot(page[i],memQueue)){//查询页面在否 times--; } else {//不在,弹出第一页,调入新页 memQueue.pop(); memQueue.push(page[i]); } } int size=memQueue.size(); while (size0){//输出当前在内存的页面值 coutmemQueue.front() ; tmpValue=memQueue.front(); memQueue.pop(); memQueue.push(tmpValue); size--; } coutendl; } cout使用FIFO策略时,共发生缺页中断times次. endl; return 0; } * * 用于const判断栈是否为空,若空,返回TRUE,否则返回FALSE bool empty() 用于const返回栈中元素的个数 size_type size() 用于返回栈顶元素的引用,如果栈为空,结果为未定义;否则,返回的是一个引用 value_type top() 用于栈不为空,弹出栈中一个元素 void p

您可能关注的文档

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档