广东外贸网站定制高德地图怎么看实况街景

张小明 2026/1/19 18:59:07
广东外贸网站定制,高德地图怎么看实况街景,域名设计与分析,网站空间的根目录目录前言一、stack的模拟实现1.1 适配器Container的封装概念二、queue的模拟实现三、deque的介绍3.1 deque的使用3.2 CPU高速缓存访问命中率与数据访问效率3.2.1 数据访问效率3.2.2 CPU高速缓存访问命中率结语#x1f3ac; 云泽Q#xff1a;个人主页#x1f525; 专栏传送入…目录前言一、stack的模拟实现1.1 适配器Container的封装概念二、queue的模拟实现三、deque的介绍3.1 deque的使用3.2 CPU高速缓存访问命中率与数据访问效率3.2.1 数据访问效率3.2.2 CPU高速缓存访问命中率结语 云泽Q个人主页 专栏传送入口: 《C语言》《数据结构》《C》《Linux》《蓝桥杯系列》⛺️遇见安然遇见你不负代码不负卿~前言大家好啊我是云泽Q欢迎阅读我的文章一名热爱计算机技术的在校大学生喜欢在课余时间做一些计算机技术的总结性文章希望我的文章能为你解答困惑~一、stack的模拟实现对于一般人来说模拟实现的栈的底层就是一个数组让数组尾部做栈顶。无论是数组栈还是链式栈很多的东西都是和顺序表和链表是类似的但是STL中的栈不是这样实现的STL在设计初的考量就是相似的一些东西直接复用像实现一个数组栈直接如图封装一个vector实现就不用再实现顺序表和链表的内部的一些逻辑了。1.1 适配器Container的封装概念且C设计STL的这些大佬的思路还更开阔一些他们还加入了一种叫做容器适配器Container转换的意思的东西这样封装适配器的思路是非常牛的“自己从头实现栈” 的写法比如注释里的T* _a_top_capacity—— 需要自己管理动态数组的扩容、释放而现在这个stack是“复用现有容器比如vector/list的功能包装成栈的接口”底层存储完全交给Container比如vector自己只封装 “栈需要的操作”push/pop/top 等。这种适配结构的核心优点【少写重复代码】复用现有容器不用自己实现底层存储原来注释里的 “数组栈” 需要自己写动态数组的初始化、扩容比如_capacity满了要realloc内存的释放防止内存泄漏下标访问、边界检查等。而现在的stack直接用vector/list作为底层容器 —— 这些容器本身已经实现了动态扩容、内存管理、尾插 / 尾删等功能你只需要调用_con.push_back()/_con.pop_back()相当于 “站在现有容器的肩膀上”不用重复造轮子。【灵活切换场景】换底层容器只改模板参数不用动栈的逻辑代码里用的是vector int 作为底层yunze::stackint, vector int 但如果场景变了比如需要 “频繁在栈顶插入 / 删除且不想承担vector扩容的开销”—— 只需要把模板参数换成list int 代码改成yunze::stackint,listintst;// 底层变成链表其他代码完全不用改st.push(1);// 还是用同样的push接口st.top();// 还是用同样的top接口底层容器换了但栈的调用代码完全不用改—— 因为stack封装了统一的接口不管底层是vector还是list对外都是 “栈的操作”。【统一接口】不用关心底层实现只用记 “栈的用法”不管底层是vector数组还是list链表你用这个stack时只需要调用push/pop/top—— 不用关心底层是 “数组尾插” 还是 “链表尾插”也不用记vector的push_back或list的push_back细节只需要记 “栈的标准操作” 即可降低了学习和使用的成本。【稳定可靠】借现有容器的成熟性减少 bugSTL 里的vector/list是经过大量测试、优化的容器比自己写的 “数组栈”比如注释里的T* _a更稳定比如vector的扩容逻辑是经过性能优化的通常是 2 倍扩容减少频繁申请内存的开销list的尾插 / 尾删是 O (1) 且不会有内存碎片问题这些容器本身也做了边界检查比如empty()时调用back()会报错。用它们作为底层比自己手写的存储结构更不容易出 bug。【适配多类型】底层容器支持的类型栈都能直接用比如你想存string类型的栈只需要写yunze::stackstring,vectorstringst;st.push(hello);coutst.top()endl;// 输出hello因为vector string 本身支持string类型你的stack不需要额外写任何代码直接适配所有Container支持的类型。看到这里可能看着该全新的写法还有一些疑问下面再看一下具体的模板参数实例化和函数调用过程库中的STL还支持使用缺省参数deque一个容器deque既不是一个数组栈也不是一个链式栈而是一个双端队列适配出来的栈双端队列不要求先进先出其在功能上是list和vector的融合体二、queue的模拟实现队列是队尾入数据队头出数据也可以在queue的类中用erase代替pop_front();vector不支持直接头删但是erase是支持头删的但是这就让效率强行降低了STL中的vector设计之初没有直接支持头删接口的原因就是希望少用功能上还是支持的voidpop(){_con.erase();}三、deque的介绍deque双端队列是一种双开口的“连续”空间的数据结构双开口的含义是可以在头尾两端进行插入和删除操作且时间复杂度为O1也可以在中间任意位置插入删除与vector比较头插效率高不需要搬移元素与list比较空间利用率比较高其在功能上是list和vector的融合体接口和list和vector的接口都基本是类似的3.1 deque的使用仅管从功能上看deque好像可以替代vector和list但是在实际情况下是不可以的如果可以的话STL就没有vector和list两个容器了deque更像是一个有着很好的设计初衷为了解决vector和list的问题但实际成品没有达到预期的一个容器但是其也有很多可取之处下图是vector和list的优缺点3.2 CPU高速缓存访问命中率与数据访问效率3.2.1 数据访问效率CPU高速缓存访问命中率高间接的也就是说数据访问效率高反之。该优缺点在归并排序和快速排序的性能测试尤其体现这里的性能测试该篇文章有写C List 容器详解迭代器失效、排序与高效操作这里上面打错了是100w个数据的数组。排序的性能差异就是由于数据的访问效率低排序的过程就要对数据结构中的数据进行大量的访问和交换数据越多这个差异就体现出来了3.2.2 CPU高速缓存访问命中率下面说一下CPU高速缓存访问命中率这个概念一、计算机存储介质的层级特性计算机的存储体系核心是“速度越快→容量越小→成本越高”的层级设计从慢到快、从大到小分为硬盘永久存储介质断电数据不丢失容量极大几百 GB~ 数 TB但访问速度最慢毫秒级。程序 / 文件的持久化存储依赖硬盘读取硬盘数据时需先将数据加载到内存中才能被 CPU 访问内存临时存储介质断电数据丢失容量适中8GB/16GB/32GB 为主访问速度远快于硬盘几十纳秒级但仍慢于 CPU 运算速度。所有运行中的程序、数据结构如 vector/list的实际数据都存储在内存中CPU 缓存L1/L2/L3介于内存和寄存器之间的高速存储容量远小于内存L1 几十 KB、L2 几百 KB、L3 几 MB~ 几十 MB访问速度是内存的 10~100 倍纳秒级寄存器CPU 内部的超高速存储几字节几十字节速度最快亚纳秒级但容量极小仅能存储 CPU 运算时的临时数据如 操作的中间值。还有专门写该部分原理的博客程序员相关的CPU缓存知识结语
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

长沙网站排名技术北京网络营销培训

如何访问7860端口进行腾讯混元OCR网页推理?详细操作指南 在企业数字化转型加速的今天,文档信息提取已成为AI落地的核心场景之一。无论是银行票据识别、医院病历结构化,还是政务材料自动化处理,传统OCR工具往往因部署复杂、识别不准…

张小明 2026/1/17 16:08:25 网站建设

做健身类小程序的网站湘潭做网站

在信息爆炸的时代,如何高效保存和管理网页内容成为每个用户的迫切需求。MarkDownload作为一款专业的网页转换工具,能够将任意网页内容快速转换为结构清晰的Markdown格式文件,实现真正的离线阅读和内容整理。本文将从用户角度为您详细解析这款…

张小明 2026/1/17 16:08:27 网站建设

设计网站公司 讲湖南岚鸿网站建设先进城市

还在为GitHub下载速度慢到令人发指而抓狂吗?每次面对进度条纹丝不动的绝望场景,是否让你对开源协作的热情逐渐消磨?这正是Fast-GitHub插件要彻底解决的痛点——通过智能网络优化技术,让开发者的GitHub访问体验实现质的飞跃。 【免…

张小明 2026/1/17 16:08:28 网站建设

深圳珠宝品牌网站设计wordpress后台修改代码

还在为复杂的PPT软件安装而头疼吗?想找一个能在浏览器中直接使用的专业演示文稿工具?PPTist在线PPT编辑器正是为你量身打造的完美解决方案! 【免费下载链接】PPTist 基于 Vue3.x TypeScript 的在线演示文稿(幻灯片)应…

张小明 2026/1/17 16:08:29 网站建设

自己做的网站响应速度慢wordpress加速优化服务

我这一个月在课堂上学习了C语言继承和派生最近一个月的课堂时间,几乎都在和C语言的“继承与派生”死磕。一开始看到这两个词,我满是疑惑——C语言不是面向过程的语言吗?怎么会涉及到面向对象里的概念?深入学习后才明白&#xff0c…

张小明 2026/1/17 16:08:30 网站建设

手机网站设计开发服务网站加载速度影响因素

还在为大量UI元素的滚动性能而烦恼吗?LoopScrollRect作为Unity官方UGUI系统的强力扩展,通过智能单元格复用机制彻底解决了传统ScrollRect在大数据量场景下的性能瓶颈。无论是游戏背包、排行榜还是信息展示系统,这款插件都能让您的UI流畅如飞&…

张小明 2026/1/17 16:08:31 网站建设