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

学做网站 书网站编辑

学做网站 书,网站编辑,建e室内设计网贴图,杭州网站设计哪家公司好目录 stack类的作用什么是容器适配器stack的接口构造函数emptysizetoppushpopswap关系运算符重载 stack类的实现 stack类的作用 stack是stl库提供的一种容器适配器,也就是我们数据结构中学到的栈,是非常常用的数据结构,特点是遵循LIFO&#…

目录

  • stack类的作用
  • 什么是容器适配器
  • stack的接口
    • 构造函数
    • empty
    • size
    • top
    • push
    • pop
    • swap
    • 关系运算符重载
  • stack类的实现

stack类的作用

stack是stl库提供的一种容器适配器,也就是我们数据结构中学到的栈,是非常常用的数据结构,特点是遵循LIFO(last in first out,也就是后进先出)原则。

什么是容器适配器

stl中提供的类很多都叫容器,但有一些叫做容器适配器,容器适配器到底是啥呢?我们不妨先抛掉容器这两个字,先来谈谈适配器,适配器是软件设计之中的一种概念,即基于原有的接口设计适配出用户想要的接口,是一种设计模式,适配器这种设计模式提升了代码复用性以及系统扩展性,降低了代码的耦合度,是一种优秀的设计模式。那么对于容器适配器来说,就是利用已有的容器进行各种操作封装出新的类,这就叫容器适配器。

stack的接口

构造函数

explicit stack (const container_type& ctnr = container_type());

一般来说不用给参数,直接调用默认构造就行。

empty

bool empty() const;

栈的判空。

size

size_type size() const;

返回栈的元素数。

top

      value_type& top();
const value_type& top() const;

返回栈顶元素。

push

void push (const value_type& val);

入栈。

pop

void pop();

出栈。

swap


void swap (stack& x) noexcept(/*see below*/);

栈自己的交换函数。

关系运算符重载

template <class T, class Container>bool operator== (const stack<T,Container>& lhs, const stack<T,Container>& rhs);
template <class T, class Container>bool operator!= (const stack<T,Container>& lhs, const stack<T,Container>& rhs);
template <class T, class Container>bool operator<  (const stack<T,Container>& lhs, const stack<T,Container>& rhs);
template <class T, class Container>bool operator<= (const stack<T,Container>& lhs, const stack<T,Container>& rhs);
template <class T, class Container>bool operator>  (const stack<T,Container>& lhs, const stack<T,Container>& rhs);
template <class T, class Container>bool operator>= (const stack<T,Container>& lhs, const stack<T,Container>& rhs);

stack类的实现

#define _CRT_SECURE_NO_WARNINGS 1#include<iostream>#include<deque>using namespace std;namespace jiunian
{template<class T, class container = deque<T>>class stack{public:typedef stack<T, container> Self;//stack()//{//}//stack(Self& x)://	con(x.con)//{//}//~stack()//{//}bool empty()const{return con.empty();}size_t size()const{return con.size();}T& top(){return con.back();}const T& top() const{return con.back();}void push(const T& val){con.push_back(val);}void pop(){con.pop_back();}void swap(Self& x){con.swap(x.con);}Self operator=(Self x){con = x.con;return *this;}private:container con;};
}

stack作为一个容器适配器,实现起来相比其他容器明显简单了不少,因为其作为容器适配器只需要对其他容器的接口进行封装就行,不需要自己造轮子。实现过程一看就懂,不做过多赘述。

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

相关文章:

  • 微信公众号链接网站开发没干过网络推广能干吗
  • wordpress如何自己编辑器在线seo超级外链工具
  • 网站建设首选云端高科天琥设计培训学校官网
  • 如何提高网站的搜索连云港seo优化
  • 哪些人不适合学平面设计企业seo推广外包
  • 无锡企业网站seoseo网站分析
  • 六间房直播大厅官网谷歌seo运营
  • 个人建什么网站比较好社区建站网站系统
  • 做ic销售的各种网站百度推广首页
  • 绚丽的网站关键词排名优化易下拉软件
  • 南昌做网站哪家便宜武汉百度
  • 企业可以做哪些网站有哪些内容吗如何写营销软文
  • 做网站学哪些语言seo网络推广技术
  • 介绍在家里做的点心的网站来宾网站seo
  • 网站建设导航图图库如何设计网站的首页
  • 江门英文网站建设最厉害的搜索引擎
  • 泰州住房和城乡建设厅网站首页软件外包公司排行
  • 张家港做网站百度竞价的优势和劣势
  • 做租号玩网站赚钱吗网站seo诊断优化方案
  • 网站服务器租赁seo排名点击器原理
  • 沈阳企业做网站网络推广收费价目表
  • wordpress安装 第二步安徽seo推广
  • 太原做网站外贸建站教程
  • 邢台做wap网站的公司淘宝如何刷关键词增加权重
  • 网站logo怎么设计手机百度官网首页
  • java做3d游戏下载网站有哪些免费申请网站
  • 网络工作室取名怎么优化自己网站的关键词
  • 遵义网站建设公司企业网站seo诊断报告
  • 合肥网站建设电话合肥百度快速排名优化
  • 西安专业得网站建设公司最近军事新闻