STL之stack

一、stack(栈)

  栈:LIFO 后进先出;

  首先要指出的是,stack并非和STL的其他类模板是独立的容器,stack是自适应容器(容器适配器)

  stack<int, deque<int>>   s;

  stack<int, vector<int>>       s;

  stack<int, list<int>>           s;

  STL中实现的stack方法:

  s,empty();  s.size();  

  s.pop();    //弹出一个元素; 

  s.top();    //查看栈顶元素;   

  s.push(item)  //压入一个元素; 

示例代码如下:

 1 #include <iostream>
 2 #include <stack>
 3 #include <vector>
 4 #include <list>
 5
 6 using namespace std;
 7
 8 int main()
 9 {
10     //stack是自适应容器
11     stack<int, deque<int> >  a;
12     stack<int, vector<int> > b;
13     stack<int, list<int> >  c;
14
15     //默认于a一样是用deque做stack
16     stack<int>              d;
17     d.push(25);
18     d.push(10);
19     d.push(1);
20     d.push(5);
21
22     std::cout<< d.size() << std::endl;
23     int size = d.size();
24     for(int i=0;i<size;++i){
25         std::cout << "====="<< i << std::endl;
26         std::cout<<d.top() << std::endl;    //查看数据并返回
27         //std::cout<<d.pop() << std::endl;  //Error,查看数据并返回
28         d.pop();    //弹出数据,但不返回
29     }
30 }

  内容待补充.......

 

时间: 2024-11-03 08:38:32

STL之stack的相关文章

C++ STL容器stack和queue详解_C 语言

stack是一个比较简单的容器,它的使用也很简单,stack是LIFO容器,就是后进先出,最后添加进去的元素,第一个取出来 stack初始化 std::stack<int> first; std::stack<int> second(first); std::stack<int, std;:vector<int>> third; //使用vector初始化stack ### stack常用方法### empty();//判断是否为空 push(Elem e)

STL之stack,queue,优先队列

 1.stack,size(),empty(),pop()函数 #include<stack> #include <iostream>   using namespace std;   //通过push()方法入栈 //通过size()方法求栈中元素的个数 //通过empty()方法判断栈是否为空 //通过pop()求栈中最顶端的元素 void main() {     int num;     cin >> num;     stack<int> my

UVa 120 Stacks of Flapjacks (STL deque&amp;amp;reverse)

120 - Stacks of Flapjacks Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=98&page=show_problem&problem=56 Background Stacks and Queues are often considered the bread and butter of dat

POJ 1113 二维凸包

题意:国王把自己城堡看成了一个点,让你找一个凸包把所有的城堡包住并且这个凸包距离城堡最近不能小于L,求这个凸包的最短长度. 题意就是求凸包最短长度再加上以L为半径的圆的周长就有解了.是一道使用Graham扫描法的模板题.一开始我用STL里的stack建栈,c++超时,g++985ms,而且感觉不是那么方便.之后我又用数组建栈写了,果断0ms,并且代码也没有那么长. 这个数组建栈的 #include <iostream> #include<cstdio> #include<cs

STL stack应用

1. 概念  stack是一种LIFO(last-in first-out)的数据结构,其只允许在容器的尾部对数据进行操作,如下:  stack定义如下:  Stacks are a type of container adaptor, specifically designed to operate in a LIFO context (last-in first-out), where elements are inserted and extracted only from the end

STL学习系列之四:STL学习小结

提供了类型安全.高效而易用特性的STL无疑是最值得C++程序员骄傲的部分.每一个C++程序员都应该好好学习STL:). STL(Standard Template Library 标准模板库)是C++标准库的一个重要组成部分,它由Stepanov and Lee等人最先开发,它是与C++几乎同时开始开发的:一开始STL选择了Ada作为实现语言,但Ada有点不争气,最后他们选择了C++,一个原因了,C++中已经有了模板.在后来,STL又被添加进了C++库.1996年,惠普公司又免费公开了STL,为

C++ STL简介

一.STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Lee和David R Musser在惠普实验室工作时所开发出来的.现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间. STL的代码从广义上讲分为三类:algorithm(算法).container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式,这相比

C++ STL编程轻松入门

  作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的.STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现.本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情. 1 初识STL:解答一些疑问 1.1 一个最关心的问题:什么是STL科学领域里所常用的基本数据结构和基本算法.为广大C++程序员们提供了一个可扩展的应用框架,高度体现了软件的可复用性.这种现象有些类似于Microsoft Visual

STL--容器适配器(queue、priority_queue、stack)

适配器(Adaptor)是提供接口映射的模板类.适配器基于其他类来实现新的功能,成员函数可以被添加.隐藏,也可合并以得到新的功能. STL提供了三个容器适配器:queue.priority_queue.stack. 这些适配器都是包装了vector.list.deque中某个顺序容器的包装器.注意:适配器没有提供迭代器,也不能同时插入或删除多个元素. 本文地址:http://www.cnblogs.com/archimedes/p/cpp-adapter.html,转载请注明源地址. 队列(qu