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

网站跳到另一个网站怎么做个人网站备案注意事项

网站跳到另一个网站怎么做,个人网站备案注意事项,网站开发项目描述范文,我的qq中心网页版C从入门到实战(十四)初识STL与STL简介 前言一、什么是 STL?二、STL 的版本三、STL六大组件(目前了解即可,后面会逐步讲解)1. 容器(Containers)—— 装数据的“盒子”2. 算法&#xf…

C++从入门到实战(十四)初识STL与STL简介

  • 前言
  • 一、什么是 STL?
  • 二、STL 的版本
  • 三、STL六大组件(目前了解即可,后面会逐步讲解)
    • 1. 容器(Containers)—— 装数据的“盒子”
    • 2. 算法(Algorithms)—— 处理数据的“工具”
    • 3. 迭代器(Iterators)—— 容器的“钥匙”
    • 4. 仿函数(Functors)—— 可定制的“工具配件”
    • 5. 适配器(Adapters)—— 接口的“转换器”
    • 6. 分配器(Allocators)—— 内存的“管理员”
    • 六大组件怎么配合?


前言

  • 在前期博客中,我们围绕 C/C++ 内存管理展开深入探讨,解析了内存分布模型及 C 与 C++ 内存管理的核心差异,剖析了 C++ 中 new 与 delete 的基本用法,为理解 C++ 内存管理体系筑牢根基,同时初步涉足了函数模板的基础内容
  • 接下来,我们将把目光聚焦于 C++ 的另一核心板块 ——STL(标准模板库),开启相关知识的讲解之旅。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的C++知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12880513.html?spm=1001.2014.3001.5482


一、什么是 STL?

STL 就是 C++ 里的“万能工具包”,专门帮你处理数据和实现常用功能。

  • 作用:里面装了很多“现成的工具”,比如用来装数据的“容器”(像盒子一样,比如数组、链表、集合),还有处理数据的“算法”(比如排序、查找、筛选),以及一些辅助工具(让容器和算法更好配合的“适配器”等)。
  • 优点:不用自己从头写这些常用功能,直接拿来用就行,省时省力,而且代码质量高、效率稳定。

在这里插入图片描述

二、STL 的版本

  1. 原始版本(HP 版)

    • 最早由两位大佬在惠普实验室写的,是所有版本的“祖宗”。
    • 完全开源,允许任何人免费使用、修改,甚至商用(但也要开源)。
  2. P.J. 版本(Windows 版)

    • 基于原始版本开发,被 Windows 的 Visual C++ 用了。
    • 缺点:代码像“加密文字”,命名奇怪、难读懂,而且不能公开修改(毕竟商业软件)。
  3. RW 版本(C++ Builder 版)

    • 也是基于原始版本,被 C++ Builder 软件用了。
    • 特点:代码可读性一般,同样不能公开改(商业限制)。
  4. SGI 版本(Linux 版)

    • 基于原始版本,被 Linux 的 GCC 编译器采用。
    • 优点
      • 代码像“人话”,命名和结构清晰,新手也能看懂(学 STL 源码就看它!)。
      • 完全开源,可移植性强(Windows、Linux、Mac 都能用),甚至可以修改后商用。

三、STL六大组件(目前了解即可,后面会逐步讲解)

在这里插入图片描述

1. 容器(Containers)—— 装数据的“盒子”

作用:用来存放数据,就像不同类型的盒子,有的适合整齐排列,有的适合灵活增减。
常见例子

  • 数组盒(vector):像一排固定编号的抽屉,数据连续存放,方便快速查找(比如按位置拿东西),但中间插入/删除麻烦(后面的抽屉都要挪位置)。
  • 链表盒(list):像一串钥匙链,每个钥匙(数据)可以随时拆下来或加进去,适合频繁增删,但找特定钥匙需要从头开始找。
  • 集合盒(set/map):像自动排序的收纳盒,数据放进去会自动排好序(比如按字母、数字大小),而且没有重复(set)或带标签(map,比如“名字-年龄”配对)。
    总结:容器就是“数据仓库”,根据需求选不同类型的盒子。

2. 算法(Algorithms)—— 处理数据的“工具”

作用:对容器里的数据做操作,比如排序、查找、筛选,就像用剪刀、胶水处理盒子里的东西。
常见例子

  • 排序工具(sort):把乱序的盒子里的东西按顺序排好(比如把一堆乱牌按大小理顺)。
  • 查找工具(find):在盒子里找某个特定的东西(比如在书包里找钥匙)。
  • 拷贝工具(copy):把一个盒子里的东西复制到另一个盒子里。
    关键点:算法不关心数据存在哪种盒子里,只通过“钥匙”(下面会讲的迭代器)操作数据。

3. 迭代器(Iterators)—— 容器的“钥匙”

作用:用来“访问”容器里的数据,类似指针(可以理解为“位置标签”),告诉算法“数据放在盒子的哪个格子”。
类比:比如你有一个数组盒(vector),迭代器就像盒子上的门牌号(索引),你拿着门牌号(迭代器)就能找到对应的数据。对于链表盒(list),迭代器像链条上的环,只能一个一个往前或往后移动。
重要性:算法通过迭代器知道“从哪里开始操作”“到哪里结束”,比如 sort(start, end) 就是让算法从 start 标签的位置排序到 end 标签的位置。

4. 仿函数(Functors)—— 可定制的“工具配件”

作用:本质是“能像函数一样用的对象”,用来给算法添加“定制规则”,比如改变排序的方式(从小到大还是从大到小)。
例子:默认排序(从小到大)是算法的“标准配件”,但如果你想按从大到小排序,就可以做一个“反向配件”(仿函数)告诉算法:“这次用我的规则排!”

// 自定义一个从大到小排序的仿函数
struct Greater {bool operator()(int a, int b) { return a > b; }
};
// 使用时传给sort算法
sort(arr.begin(), arr.end(), Greater()); // 按从大到小排

5. 适配器(Adapters)—— 接口的“转换器”

作用:改造已有的组件,让它们用不同的“接口”工作,类似“充电器转换头”(比如把两脚插头转成三脚插头)。
常见例子

  • 栈(stack):底层用数组或链表盒,但限制只能从“顶部”放/取数据(像叠盘子,只能拿最上面的),适配器把普通盒子变成了“只能顶部操作”的盒子。
  • 队列(queue):只能从一端放数据,另一端取数据(像排队买票),也是通过适配器改造底层容器实现的。
    本质:适配器不创造新容器,只是“包装”已有的容器,改变其操作方式。

6. 分配器(Allocators)—— 内存的“管理员”

作用:负责给容器分配和释放内存(类似仓库管理员分配货架空间),默认情况下不用关心,STL会自己处理。
简单理解:当你创建一个容器(比如vector),分配器会告诉计算机:“给我一块内存空间来放数据”,当数据满了,分配器会申请更大的空间,把数据搬过去,再释放旧空间。

六大组件怎么配合?

  1. 容器 装数据(选合适的盒子)。
  2. 迭代器 当钥匙,告诉 算法(工具)“数据放在盒子的哪里”,算法就可以处理数据。
  3. 如果算法的默认规则不够用,用 仿函数(定制配件)改规则。
  4. 适配器(转换头)让已有的容器/函数用新的方式工作。
  5. 背后有 分配器(管理员)默默管理内存空间。

以上就是这篇博客的全部内容,下一篇我们将继续探索STL中String里更多精彩内容。

我的个人主页,欢迎来阅读我的其他文章
https://blog.csdn.net/2402_83322742?spm=1011.2415.3001.5343
我的C++知识文章专栏
欢迎来阅读指出不足
https://blog.csdn.net/2402_83322742/category_12880513.html?spm=1001.2014.3001.5482

非常感谢您的阅读,喜欢的话记得三连哦

在这里插入图片描述


文章转载自:

http://5D10X6NG.rxsgk.cn
http://dGgFPI23.rxsgk.cn
http://j6OsI7V3.rxsgk.cn
http://Tinuz5Wx.rxsgk.cn
http://YRk9MdVf.rxsgk.cn
http://k1ryaYMo.rxsgk.cn
http://lGYzB5tz.rxsgk.cn
http://KdSSf4wA.rxsgk.cn
http://3oTqp71o.rxsgk.cn
http://ba9IKaGr.rxsgk.cn
http://NrT9ISaM.rxsgk.cn
http://5RTfMwHc.rxsgk.cn
http://7kErqA9J.rxsgk.cn
http://woKPoYyb.rxsgk.cn
http://fAprZ4Z4.rxsgk.cn
http://Mhfjl3fj.rxsgk.cn
http://xqAPyra1.rxsgk.cn
http://nWUYnZPm.rxsgk.cn
http://6qnjl7Qf.rxsgk.cn
http://bJMMIzMX.rxsgk.cn
http://4IhMvmWp.rxsgk.cn
http://YjUnWJqH.rxsgk.cn
http://joawdfly.rxsgk.cn
http://rRULTaTu.rxsgk.cn
http://EzaZc492.rxsgk.cn
http://5lf4MiII.rxsgk.cn
http://EgOrw3Ex.rxsgk.cn
http://0bk1ohWg.rxsgk.cn
http://KOuhH2eC.rxsgk.cn
http://8NMVed8g.rxsgk.cn
http://www.dtcms.com/wzjs/662128.html

相关文章:

  • 凯里建设网站wordpress转发微信
  • 招网站建设人员国内crm系统
  • 双鸭山网站开发商丘网站制作电话
  • 网站开发专业优势公司网站服务费计入什么科目
  • 长沙网站制作的建设充值网站多钱
  • 企业网站背景图片王烨华
  • 对网站和网页的认识农产品电子商务网站建设现状
  • 呼和浩特市做网站公司好的建设银行网站用什么字体
  • 深圳英文网站建设公司简历制作app免费
  • 宝安有效的网站制作手机网站开发建设方案
  • 公司网站建设接单如何设立微信公众号
  • 网站投放广告费用远程管理wordpress站群
  • 济南网站建设培训学校惠州网站建设乐云seo在线制作
  • 浙江天奥建设集团网站WordPress评论ajax提交
  • 河池网站建设公司微信电脑版官方下载
  • 制作网站和制作网页的分别wordpress视频分享
  • 在centos上做网站谷歌play商店
  • 东营智能网站设计大型网站建设兴田德润赞扬
  • 网站域名备案查询官网口碑营销例子
  • 课程网站如何建设方案永久免vip的网站
  • 企业建设网站流程app开发公司q1654534794下拉推广
  • 攻击asp网站百度一下官网手机版
  • 网站建设制作设计惠州工信部 网站备案查询
  • 外贸网站建设公司价位教学单位 网站建设
  • 汽车4s店网站建设方案如何设计网店店面
  • 大型社区网站开发文档玩具外贸好做吗
  • 商城网站网站开发wordpress标签不输出文章
  • 学校网站的建设论文品牌网站的推广
  • 大麦网网站内似网站开发惠州短视频seo
  • 百度网站官网入口网店出售