码迷,mamicode.com
首页 > 编程语言 > 详细

【C++ STL】Stack

时间:2017-06-11 17:29:49      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:操作   class   分享   返回值   转化   std   pac   logs   tac   

1、定义

  class stack<> 实作出一个stack(也成为LIFO,后进先出),你可以使用push()将任意数量的元素置入stack中,也可以使用pop()将元素依次插入次序反序从容器移除(即后进先出)。

技术分享

  在<stack>中,class stack定义如下:

namespace std {
       template <class T,
                 class Container = deque<T> >
       class stack;
   }

  第一个template参数代表元素型别。带有默认值的第二个template参赛用来定义stack内部存放元素的实际容器,缺省采用的是deque。之所以采用deque是因为deque移除元素会释放内存,并且不用重新分配内存时复制所有元素。

  例如定义一个元素型别为整数的stack:

std::stack<int> st;     // integer stack

  实际上,stack只是将各项操作转化为内部容器的各项调用,可以使用任何序列式容器来支持stack,只要它支持back(),push_back(),pop_back()等操作。

  例如使用vector来容纳元素:

std::stack<int,std::vector<int> > st;     // integer stack that uses a vector

技术分享

2、核心接口

stack就三个接口函数,push(),top(),pop()。

  • push()会将一个元素放入stack中。
  • top()会返回stack中的栈顶元素,返回的是reference,可以就地修改值。
  • pop()移除栈顶元素,无返回值。
  • size()返回stack长度。
  • empty()返回stack是否为空。

【C++ STL】Stack

标签:操作   class   分享   返回值   转化   std   pac   logs   tac   

原文地址:http://www.cnblogs.com/ChinaHook/p/6985544.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!