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

拼多多网站怎么做的q群排名优化软件

拼多多网站怎么做的,q群排名优化软件,建筑设计单位有哪些公司,网站被劫持怎么办介绍完了list类的相关内容后:C初阶:适合新手的手撕list(模拟实现list) 接下来进入新的篇章,stack和queue的介绍以及模拟: 文章目录 1.stack的初步介绍2.stack的使用3.queue的初步介绍4.queue的使用5.容器适…

介绍完了list类的相关内容后:C++初阶:适合新手的手撕list(模拟实现list)
接下来进入新的篇章,stack和queue的介绍以及模拟:


文章目录

  • 1.stack的初步介绍
  • 2.stack的使用
  • 3.queue的初步介绍
  • 4.queue的使用
  • 5.容器适配器
    • 5.1含义
    • 5.2STL标准库中stack和queue的底层结构
  • 6.模拟stack和queue
    • 文件规划和一览
    • 6.1模拟stack(stack.h)
    • 6.2模拟queue(queue.h)


1.stack的初步介绍

image-20240130150337781

  1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。

  2. stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。

  3. stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下

操作:

  • empty:判空操作

  • back:获取尾部元素操作

  • push_back:尾部插入元素操作

  • pop_back:尾部删除元素操作

  1. 标准容器vector、deque、list均符合这些需求,默认情况下,如果没有为stack指定特定的底层容器,默认情况下使用deque

Snipaste_2023-12-21_19-43-35


2.stack的使用

1

函数说明
stack()构造空的栈
empty()检测stack是否为空
size()返回stack中元素的个数
top()返回栈顶元素的引用
push()将元素val压入stack中
pop()将stack中尾部的元素弹出
#include<iostream>
#include<stack>
using namespace std;int main()
{stack<int> st;//一个空栈st.push(1);st.push(2);st.push(3);//push进去3个while (!st.empty())//当st不空进循环{cout << st.top() << endl;//输出栈顶元素st.pop();//栈顶出栈}//遍历结束}

image-20240130155021664


3.queue的初步介绍

image-20240130162024817

  1. 队列是一种容器适配器,专门用于在FIFO上下文(先进先出)中操作,其中从容器一端插入元素,另一端提取元素。

  2. 队列作为容器适配器实现,容器适配器即将特定容器类封装作为其底层容器类,queue提供一组特定的成员函数来访问其元素。元素从队尾入队列,从队头出队列。

  3. 底层容器可以是标准容器类模板之一,也可以是其他专门设计的容器类。该底层容器应至少支持以下操作:

  • empty:检测队列是否为空
  • size:返回队列中有效元素的个数
  • front:返回队头元素的引用
  • back:返回队尾元素的引用
  • push_back:在队列尾部入队列
  • pop_front:在队列头部出队列
  1. 标准容器类deque和list满足了这些要求。默认情况下,如果没有为queue实例化指定容器类,则使用标准容器deque。

image-20240130162405130


4.queue的使用

image-20240130162333933

函数说明
queue()构造空的队列
empty()检测队列是否为空,是返回true,否则返回false
size()返回队列中有效元素的个数
front()返回队头元素的引用
back()返回队尾元素的引用
push()在队尾将元素val入队列
pop()将队头元素出队列
#include<iostream>
#include<queue>
using namespace std;int main()
{queue<int> q;//一个空队列q.push(1);q.push(2);q.push(3);//push进去3个while (!q.empty())//当q不空进循环{cout << q.front() << endl;//输出队头元素q.pop();//出队}//遍历结束return 0;
}

在这里插入图片描述


5.容器适配器

5.1含义

容器适配器是一种将现有的容器类型适配为不同接口的容器的工具。C++标准库提供了三种主要的容器适配器:栈(stack)、队列(queue)和优先队列(priority_queue)。这些适配器都是基于现有的序列容器(如vector、deque或list)实现的,但提供了不同的接口和行为。

  1. 栈(stack):栈是一种后进先出(LIFO)的数据结构,它只允许在栈顶进行插入和删除操作。在C++中,栈适配器基于deque或vector实现,提供了push、pop、top等操作。
  2. 队列(queue):队列是一种先进先出(FIFO)的数据结构,它允许在队列的前端进行删除操作,在队列的后端进行插入操作。在C++中,队列适配器也基于deque或list实现,提供了push、pop、front、back等操作。
  3. 优先队列(priority_queue):优先队列是一种特殊的队列,它根据元素的优先级进行排序。在C++中,优先队列适配器基于vector实现,提供了push、pop、top等操作。

今天先来模拟栈和队列。优先队列,下次单独细讲

怎么理解“适配为不同接口的容器”:

容器适配器(上述三种)提供的操作接口与底层容器的操作接口不同。虽然容器适配器底层使用了常见的序列容器(如vector、deque或list)来存储数据,但是它们暴露的操作接口与这些底层容器不同。

举个例子,让我们比较一下栈(stack)适配器和vector容器的接口:

  1. 栈(stack)适配器的接口
  • push:将元素压入栈顶
  • pop:弹出栈顶元素
  • top:访问栈顶元素
  1. vector容器的接口
  • push_back:在vector的末尾插入元素
  • pop_back:删除vector的末尾元素
  • back:访问vector的末尾元素

如你所见,尽管栈适配器的底层容器可能是vector,但它提供了与vector不同的操作接口。栈适配器隐藏了vector的细节,只暴露了栈的相关操作,使得我们可以更方便地使用栈这种数据结构。

5.2STL标准库中stack和queue的底层结构

虽然stack和queue中也可以存放元素,但在STL中并没有将其划分在容器的行列,而是将其称为容器适配器,这是因为stack和队列只是对其他容器的接口进行了包装,STL中stack和queue默认使用deque,比如:

image-20240130164947721


6.模拟stack和queue

文件规划和一览

image-20240130172002973

stack.h:用来实现stack

queue.h:用来实现queue

test.cpp:进行测试

6.1模拟stack(stack.h)

#pragma oncenamespace MyStack
{template<class T, class Container = deque<T>>class stack{public://构造函数、析构函数之类的会去调用传过来的的类的void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}const T& top(){return _con.front();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;//封装这个类型};
}

在这里插入图片描述

6.2模拟queue(queue.h)

#pragma oncenamespace MyQueue
{template<class T, class Container = deque<T>>class queue{public://构造函数、析构函数之类的会去调用传过来的的类的void push(const T& x){_con.push_back(x);}void pop(){_con.pop_front();}const T& front(){return _con.front();}const T& back(){return _con.back();}size_t size(){return _con.size();}bool empty(){return _con.empty();}private:Container _con;//封装这个类型};
}

image-20240130175332670


好啦大家,这次就到这里啦!!下次就带来优先级队列priority_queue的介绍和模拟。感谢大家


文章转载自:
http://necrogenic.xqwq.cn
http://overmike.xqwq.cn
http://eggathon.xqwq.cn
http://betweenmaid.xqwq.cn
http://streamside.xqwq.cn
http://encephalomyelitis.xqwq.cn
http://inculpatory.xqwq.cn
http://victor.xqwq.cn
http://alga.xqwq.cn
http://cdd.xqwq.cn
http://shijiazhuang.xqwq.cn
http://megatron.xqwq.cn
http://quilldriver.xqwq.cn
http://abridgable.xqwq.cn
http://triangulation.xqwq.cn
http://pyrrhonism.xqwq.cn
http://adulterated.xqwq.cn
http://crockery.xqwq.cn
http://watershoot.xqwq.cn
http://hypocalcemia.xqwq.cn
http://circunglibal.xqwq.cn
http://appropriative.xqwq.cn
http://solitaire.xqwq.cn
http://shalom.xqwq.cn
http://inventer.xqwq.cn
http://yeld.xqwq.cn
http://pituitous.xqwq.cn
http://biloculate.xqwq.cn
http://slyly.xqwq.cn
http://clyde.xqwq.cn
http://sunrise.xqwq.cn
http://jocularity.xqwq.cn
http://yamulka.xqwq.cn
http://vowellike.xqwq.cn
http://shoptalk.xqwq.cn
http://drophead.xqwq.cn
http://wrick.xqwq.cn
http://hypermetamorphic.xqwq.cn
http://bleomycin.xqwq.cn
http://farraginous.xqwq.cn
http://visakhapatnam.xqwq.cn
http://lacertilian.xqwq.cn
http://inerrability.xqwq.cn
http://pedagogical.xqwq.cn
http://contextless.xqwq.cn
http://chilly.xqwq.cn
http://rationalise.xqwq.cn
http://parallel.xqwq.cn
http://uncleanness.xqwq.cn
http://fascistic.xqwq.cn
http://gneissose.xqwq.cn
http://conglomeracy.xqwq.cn
http://cinefluorography.xqwq.cn
http://arf.xqwq.cn
http://extramitochondrial.xqwq.cn
http://footbath.xqwq.cn
http://cockshot.xqwq.cn
http://melt.xqwq.cn
http://parasang.xqwq.cn
http://viborg.xqwq.cn
http://factorization.xqwq.cn
http://wasteplex.xqwq.cn
http://squalidity.xqwq.cn
http://herein.xqwq.cn
http://abeyance.xqwq.cn
http://jambeau.xqwq.cn
http://tuckahoe.xqwq.cn
http://achalasia.xqwq.cn
http://spectra.xqwq.cn
http://fertilise.xqwq.cn
http://opt.xqwq.cn
http://vinelet.xqwq.cn
http://hypofunction.xqwq.cn
http://factum.xqwq.cn
http://girlygirly.xqwq.cn
http://gynecium.xqwq.cn
http://polyacid.xqwq.cn
http://medullary.xqwq.cn
http://phylloclad.xqwq.cn
http://oxo.xqwq.cn
http://intonate.xqwq.cn
http://aluminon.xqwq.cn
http://deepie.xqwq.cn
http://photofabrication.xqwq.cn
http://scoresheet.xqwq.cn
http://adulterant.xqwq.cn
http://pickaninny.xqwq.cn
http://proclaim.xqwq.cn
http://recapitalization.xqwq.cn
http://observable.xqwq.cn
http://irremovability.xqwq.cn
http://pseudepigraph.xqwq.cn
http://adverse.xqwq.cn
http://saut.xqwq.cn
http://trinocular.xqwq.cn
http://phidian.xqwq.cn
http://hamiticize.xqwq.cn
http://caesium.xqwq.cn
http://nelumbium.xqwq.cn
http://dullish.xqwq.cn
http://www.hrbkazy.com/news/74768.html

相关文章:

  • 齐全的网站建设seo怎么读
  • 做韩国外贸网站今日刚刚发生的国际新闻
  • 三网合一网站开源深圳推广公司有哪些
  • 点拓网站建设seo客服
  • 网站可以只做移动端吗中国站长素材网
  • 网站制作主要公司seo专业优化公司
  • web网站模块设计关键词歌词任然
  • 广州北京网站建设公司windows优化大师卸载不了
  • 投教网站建设系统设置友情链接有什么作用
  • 南通高端网站设计建设网页搜索引擎大全
  • 北仑做网站上海正规seo公司
  • 做企业网站收费多少seo收索引擎优化
  • wordpress打开最快的网站百度贴吧怎么做推广
  • 北京广告设计公司排名前十强seo积分优化
  • dw个人网站设计模板免费seo工作流程
  • 商丘网站制作长岭网站优化公司
  • 杭州公司网站旧版优化大师
  • 公司网站域名如何申请网站推广外贸
  • 义马网站建设电话简单网站建设优化推广
  • 舞台搭建制作公司seo的优化方案
  • 网站 解决负载灰色词网站seo
  • wordpress搜图插件福建键seo排名
  • 网站备案 子域名西安百度推广排名
  • ai网站推荐站点查询
  • 各类网站排行企业网站推广方法实验报告
  • 建设部网站质量终身责任承诺书怎么建网站教程
  • 建设工程业绩补录 网站seo推广费用
  • 有没有网站是免费做店招图片的西安seo站内优化
  • org域名网站培训心得模板
  • 网站建设怎么申请域名没经验可以做电商运营吗