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

其它区便宜营销型网站建设推荐/网络推广员的工作内容

其它区便宜营销型网站建设推荐,网络推广员的工作内容,有哪些网站有收录做红酒的商行,个人网站能否备案欢迎阅读我的 【CPrimer】专栏 专栏简介:本专栏主要面向C初学者,解释C的一些基本概念和基础语言特性,涉及C标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级…

欢迎阅读我的 【C++Primer】专栏

专栏简介:本专栏主要面向C++初学者,解释C++的一些基本概念和基础语言特性,涉及C++标准库的用法,面向对象特性,泛型特性高级用法。通过使用标准库中定义的抽象设施,使你更加适应高级程序设计技术。希望对读者有帮助!

在这里插入图片描述
在这里插入图片描述

目录

  • 9.6容器适配器洁
    • 定义一个适配器
    • 栈适配器
    • 队列适配器

9.6容器适配器洁

除了顺序容器外,标准库还定义了三个顺序容器适配器:stack、queue和priority_queue。适配器(adaptor)是标准库中的一个通用概念。容器、迭代器和函数都有适配器。本质上,一个适配器是一种机制,能使某种事物的行为看起籼像另外一种事物一样。一个容器适配器接受一种己有的容器类型,使其行为看起来像一种不同的类型。

例如,stack适配器接受一个顺序容器(除array或forward_list外),并使其操作起来像一个stack一样。表9.17列出了所有容器适配器都支持的操作和类型。

表9.17:所有容器适配器都支持的操作和类型

size_type-种类型,足以保存当前类型的最大对象的大小
value_type元素类型
container_type实现适配器的底层容器类型
A a创建一个名为a的空适配器
A a©;创建一个名为a的适配器,带有容器c的一个拷贝
关系运算符每个适配器都支持所有关系运算符,一、!、<、<<、>和>-这些运算符返回底层容器的比较结果
a.empty()若a包含任何元素,返回false,否则返回true
a.size()返回a中的元素数目
swap(a,b)交换a和b的内容,a和b必须有相同类型,包括底层容器类型也必
a.swap(b)项相同

定义一个适配器

每个适配器都定义两个构造函数:默认构造函数创建一个空对象,接受一个容器的构造函数拷贝该容器来初始化适配器。例如,假定aeq是一个deque,我们可以用deq来初始化一个新的stack,如下所示:

stack<int>stk(deq);//从deq拷贝元素到stk

默认情况下,stack和queue是基于deque实现的,priority_queue是在vector之上实现的。我们可以在创建一个适配器时将一个命名的顺序容器作为第二个类型参数,来重载默认容器类型。

//在vector上实现的空栈
stack<string,vector<string>>str_stk;
//str_stKk2在yector上实现,初始化时保存syec的拷贝
stack<string,vector<string>>str_stk2(svec);

对于一个给定的适配器,可以使用哪些容器是有限制的。所有适配器都要求容器具有添加和删除元素的能力。因此,适配嚣不能构造在array之上。类似的,我们也不能用forward_list来构造适配器,因为所有适配器都要求容器具有添加、删除以及访问尾元素的能力sstack只要求push_pack、pop_back和back操作,因此可以使用除array和forward_list之外的任何容器类型来构造stack。queue适配器要求back、pPush_back、front和push_front,因此它可以构造于list或deque之上,但不能基于vector构造。priority_queue除了front、push_back和Pop_back操作之外还要求随机访问能力,因此它可以构造于vector或deque之上,但不能基于list构造。

栈适配器

stack类型定义在stack头文件中。表9.18列出了stack所支持的操作。下面的程序展示了如何使用stack:

stack<int>intStack;//空栈
//填满栈
for(size_t ix= 0; ix!=10; ++ix)intStack.push(x);//intStack保存0到9十个数
while(!intstack.empty()){//intStack中有值就继续循环int value=intStack.top();//使用栈顶值的代码intStack.pop();//弹出栈顶元素,继续循环
}

其中,声明语句
stackintStack;//空栈

定义了一个保存整型元素的栈intStack,初始时为空。for循环将10个元素添加到栈中,这些元素被初始化为从0开始连续的整数。while循环遍历整个stack,获取top值,将其从栈中弹出,直至栈空。

表9.18:表9.17未列出的栈操作

栈默认基于deque实现,也可以在1ist或vector之上实现。
s.pop()删除栈顺元素,但不返回该元素值
s.push(item)创建一个新元素压入栈顶,该元素通过拷贝或移动ttem而来,或者
s.empl1ace(args)由args构造
s.top()返回栈顺元素,但不将元素弹出栈

每个容器适配器都基于底层容器类型的操作定义了自己的特殊操作。我们只可以使用适配器操作,而不能使用底层容器类型的操作。例如,

intStack.push(tx);//itntStack保存0到9十个数

此语句试图在intStack的底层deque对象上调用push_back。虽然stack是基于deque实现的,但我们不能直接使用deque操作.不能在一个stack上调用push_back,而必须使用stack自己的操作一一push。

队列适配器

queue和priority_queue适配器定义在queue头文件中。表9.19列出了它们所支持的操作。

表9.19:表9.17未列出的queue和priority_queue操作

queue默认基于deque实现,priority_queue默认基于vyector实现;
queue也可以用list或vector实现,priorty_queue也可以用deque实现。
q.pop()返回queue的首元素或priority_queue的最高优先级的元素,但不删除此元素
q.front()返回首元素或尾元素,但不删除此元素
q.back()只适用于queue
q.top()返回最高优先级元素,但不删除该元素只造用于priority queue
q.push(item)在queue末尾或priority_queue中恰当的位置创建一个元素,
q.emplace(args)其值为item,或者由args构造

标准库queue使用一种先进先出(first-in,first-out,FIFO)的存储和访问策略。进入队列的对象被放置到队尾,而离开队列的对象则从队首删除。饭店按客人到达的顺序来为他们安排座位,就是一个先进先出队列的例子。

priority_queue允许我们为队列中的元素建立优先级。新加入的元素会排在所有优先级比它低的已有元素之前。饭店按照客人预定时间而不是到来时间的早晚来为他们安排座位,就是一个优先队列的例子。默认情况下,标准库在元素类型上使用<运算符来确定相对优先级。

http://www.whsansanxincailiao.cn/news/32056860.html

相关文章:

  • 做问答营销的网站有哪些/沧州网站建设公司
  • 网站开发技术的历史/怎样在百度做广告宣传
  • 电商做网站/国际新闻界
  • 云服务器便宜/windows优化大师有必要安装吗
  • 淘宝网站的论坛做的怎么样/广东最新疫情
  • 想学做蛋糕用哪一个网站/网站建设方案书范文
  • 公司设计网站需要多久/销售平台软件有哪些
  • 建筑网bim二级结构21期全套试题/深圳网站优化软件
  • 网站空间备案流程/晋江友情链接是什么意思
  • 接收新网站如何做诊断/私人做网站建设
  • 深圳2024新冠最新情况/百度谷歌seo优化
  • cf外挂购买网站/百度百度一下一下
  • wordpress去掉评论界面/seo的优化流程
  • 网站管理员是干什么的/免费建站平台
  • 网络存储上做网站/站长工具服务器查询
  • 网站安全认证多少钱/最新app推广项目平台
  • 购物网站功能模块说明/免费网站seo排名优化
  • 手机网站头部/做百度推广的网络公司广州
  • 网站项目建设背景/地推一手项目平台
  • 额尔古纳网站建设/黑河seo
  • 网站制作网站建/外贸营销网站怎么建站
  • 网站建设费计入管理费用/网络营销论文5000字
  • 建设工程合同管理多少分及格/解释seo网站推广
  • 北京自己怎么做网站/厨师培训学校
  • 那个网站做h5好/网络营销概述
  • 做ppt模版的网站/海外市场推广策略
  • 深圳购物网站/潮州seo
  • 手机网站触屏版/友情链接平台广告
  • 国外网站源码/推广平台都有哪些
  • 个人博客网站实验报告/潍坊网站开发公司