当前位置: 首页 > wzjs >正文

建网站用什么服务器好3d建模师

建网站用什么服务器好,3d建模师,合肥优秀网站建设,苏州建网站哪家s t a c k stack stack 是一种容器适配器,设计为先进后出( F i r s t I n L a s t O u t , F I L O First\ In\ Last\ Out,\ FILO First In Last Out, FILO)的数据结构,只有一个出口,将元素推入栈的操作称为 p u s h …

s t a c k stack stack 是一种容器适配器,设计为先进后出( F i r s t I n L a s t O u t , F I L O First\ In\ Last\ Out,\ FILO First In Last Out, FILO)的数据结构,只有一个出口,将元素推入栈的操作称为 p u s h push push, 将元素推出栈的操作称为 p o p pop pop。因此,只要能满足栈结构要求的容器都可以作为 s t a c k stack stack 的底层容器。同时,由于 s t a c k stack stack 不允许有遍历行为(只能取栈顶元素),因此 s t a c k stack stack 没有迭代器

文章目录

  • 前言 —— 容器适配器
  • 一、stack 的介绍
  • 二、stack 的使用(常用接口)
  • 三、stack 的模拟实现
  • 四、STL 标准库中的 stack
    • 1. 底层结构
    • 2. 模拟实现
  • 总结


前言 —— 容器适配器

适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结),该种模式是将一个类的接口转换成客户希望的另外一个接口

在这里插入图片描述


一、stack 的介绍

关于 s t a c k stack stack 的介绍,建议去查 C C C++ 官方文档: s t a c k stack stack 的文档介绍

在这里插入图片描述

以下为 s t a c k stack stack 的官方文档介绍:

  1. 是一种容器适配器,专门设计用于在 L I F O LIFO LIFO 上下文(后进先出)中运行,其中元素仅从容器的一端插入和提取。

  2. 栈作为容器适配器实现,容器适配器是使用特定容器类的封装对象作为其基础容器的类,提供一组特定的成员函数来访问其元素。元素从特定容器的 “ b a c k ” “back” back 推送 / / /弹出,这称为栈的顶部

  3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:
    (1)empty:检测栈是否为空。
    (2)size:返回栈中有效元素的个数。
    (3)back:返回栈顶元素的引用。
    (4)push_back:在栈顶压栈。
    (5)pop_back:在栈顶出栈。

  4. 标准容器类 d e q u e deque deque v e c t o r vector vector 满足了这些要求。默认情况下,如果没有为 s t a c k stack stack 实例化指定容器类,则使用标准容器。

在这里插入图片描述


二、stack 的使用(常用接口)

下面只列举了 s t a c k stack stack 最常用的几个接口,更多详细信息可以自行查官方文档: s t a c k stack stack

可以看出 s t a c k stack stack v e c t o r vector vector l i s t list list 都不一样,第二个模板参数从 alloc 变为了 Container,缺省值说明标准库里的 s t a c k stack stack 默认 d e q u e deque deque 容器的容器适配器
t e m p l a t e < c l a s s T , c l a s s C o n t a i n e r = d e q u e < T > > c l a s s s t a c k ; template <class\ T, class\ Container = deque<T> > class\ stack; template<class T,class Container=deque<T>>class stack;

函数说明接口说明
s t a c k ( ) stack() stack()构造空的栈
e m p t y ( ) empty() empty()检测 s t a c k stack stack 是否为空
s i z e ( ) size() size()返回 s t a c k stack stack 中元素的个数
t o p ( ) top() top()返回栈顶元素的引用
p u s h ( ) push() push()将元素 v a l val val 压入 s t a c k stack stack
p o p ( ) pop() pop() s t a c k stack stack 中尾部的元素弹出

三、stack 的模拟实现

栈的接口中可以看出,栈实际是一种特殊的 v e c t o r vector vector,因此使用 v e c t o r vector vector 完全可以模拟实现 s t a c k stack stack

也就是说, s t a c k stack stack 作为容器适配器,是直接封装其他容器的部分功能,只要能实现 s t a c k stack stack 的基本功能,就能够作为 s t a c k stack stack底层实现容器,如: v e c t o r vector vector l i s t list list d e q u e deque deque

这里使用 v e c t o r vector vector 容器为底层默认容器来模拟实现的 s t a c k stack stack

#include<vector>using namespace std;namespace ybc
{//用 Container 适配转换出 stacktemplate<class T, class Container = vector<T>> //给vector缺省值class stack{public:void push(const T& x){_con.push_back(x);}void pop(){_con.pop_back();}const T& top() const{return _con.back();}size_t size() const{return _con.size();}bool empty() const{return _con.empty();}private:Container _con;	//底层可以使用 vector/list/deque 容器};
}

注意:类模板实例化时,会按需实例化:使用了哪些成员函数,就实例化哪些成员函数(不会全实例化)。


四、STL 标准库中的 stack

1. 底层结构

虽然 s t a c k stack stack 中也可以存放元素,但在 S T L STL STL 中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为 s t a c k stack stack 只是对其他容器的接口进行了包装 S T L STL STL s t a c k stack stack 默认使用 d e q u e deque deque

在这里插入图片描述

关于 d e q u e deque deque 的介绍可以看我的这篇博客:【STL】 d e q u e deque deque(了解),仅供了解,这里不过多介绍。

2. 模拟实现

#include<vector>
#include<list>
#include<deque>using namespace std;namespace ybc
{//template<class T, class Con = vector<T>>//template<class T, class Con = list<T>>template<class T, class Con = deque<T>>class stack{public:stack() {}void push(const T& x) {_c.push_back(x);}void pop() {_c.pop_back(); }T& top() {return _c.back();}const T& top() const {return _c.back();}size_t size() const {return _c.size();}bool empty() const {return _c.empty();}private:Con _c;};
}

总结

以某种既有容器为底部结构将其接口改变,使其符合 “ “ 先进后出 ” ” 的特性,形成一个 s t a c k stack stack,是很容易做到的。 d e q u e deque deque 是双向开口的数据结构,若以 d e q u e deque deque 为底部结构并封闭其头端开口,便轻而易举地形成了一个 s t a c k stack stack。因此, S G I SGI SGI S T L STL STL 便以 d e q u e deque deque 作为默认情况下的 s t a c k stack stack 底部结构。

由于 s t a c k stack stack 是以底部容器完成其所有工作,而具有这种 “ “ 修改某物接口,形成另一种风貌 ” ” 的性质的,称为 a d a p t e r adapter adapter适配器),因此, S T L STL STL s t a c k stack stack 往往不被归类为 c o n t a i n e r container container容器),而被归类为 c o n t a i n e r a d a p t e r container\ adapter container adapter容器适配器)。

http://www.dtcms.com/wzjs/561592.html

相关文章:

  • 深圳做网站公司哪家好梅河口市建设局网站
  • 网站搭建设计自己电脑可以做网站服务器
  • 网站流量好难做腾讯云网站安全认证
  • 台州快速建站公司桂林网站建
  • 红酒手机网站建设wordpress文章不能写入关键词
  • 网站网页制作模板企业宣传片拍摄思路
  • 海外seo网站推广style图片路径wordpress
  • 网络营销导向企业网站建设的原则包括专业建筑工程网站
  • 大城县企业网站建设建设网站建设哪家快
  • 个人网站设计步骤做环保是跑还是网站卖
  • 佛山中小企业网站建设重庆企业网站定制
  • 德国和俄罗斯和做视频网站政务网站建设及安全
  • 门户网站 架构怎么加php网站登陆源码
  • 用别的公司域名做网站如何用源代码提取网页的图片
  • 泰安网站制作工作室品牌搜索引擎服务优化
  • 软件下载网站制作如何建网站赚钱
  • 手机怎么打开自己做的网站昆明有几个区
  • 网站设计与开发公司wordpress盒子
  • 企业网站建设的参考文献百度官网进入
  • 我和你99谁做的网站什么是网络营销最重要的工具
  • 哈尔滨网络科技公司做网站学校门户网站建设的好处
  • 局网站建设情况网站建设案例基本流程
  • 安徽p2p网站建设一家企业如何建设自己的网站 下载
  • 动态手机网站常州个性化网站建设
  • 嘉兴网站seo公司街区网站建设的意义
  • 建设部网站1667号如何自己建网址
  • 心理服务网站建设内容windows优化大师好吗
  • 济宁做网站多少钱十大免费ppt课件网站
  • 耒阳市古雍网站建设店网站单页支付宝支付怎么做的
  • 苏州网站开发服务网站说服力