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

C++之初识STL(概念)

STL(标准模板库)


STL广义分类为:容器,算法,迭代器
* **容器**和**算法**之间通过**迭代器**进行无缝连接

意义:C++的**面向对象**和**泛型编程**思想,目的就是**复用性的提升**

STL六大组件


1. 容器:各种数据结构,如vector、list、deque、set、map等,用来存放数据。
2. 算法:各种常用的算法,如sort、find、copy、for_each等
3. 迭代器:扮演了容器与算法之间的胶合剂。(指针)

4. 仿函数:行为类似函数,可作为算法的某种策略。
5. 适配器:一种用来修饰容器或者仿函数或迭代器接口的东西。
6. 空间配置器:负责空间的配置与管理。

 STL之容器


容器含义:**最广泛的一些数据结构**

常用的数据结构:数组, 链表,树, 栈, 队列, 集合, 映射表 等

分类:序列式容器,关联式容器

​    **序列式容器**: 强调值的排序,序列式容器中的每个元素均有固定的位置。
    **关联式容器**: 二叉树结构,各元素之间没有严格的物理上的顺序关系

STL之算法


分类:质变算法,非质变算法

质变算法:指运算过程中会更改区间内的元素的内容。例如拷贝,替换,删除等等

非质变算法:指运算过程中不会更改区间内的元素内容,例如查找、计数、遍历、找极值等

 STL之迭代器(指针)


含义:容器和算法之间粘合剂

提供一种方法,使之能够依序寻访某个容器所含的各个元素,而又无需暴露该容器的内部表示方式。

每个容器都有自己专属的迭代器

迭代器使用非常类似于指针,初学阶段我们可以先理解迭代器为指针

 

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • GitLab 迁移后 Token 失效解决方法
  • java项目之城镇保障性住房管理系统(源码+文档)
  • vue使用PDF.JS踩的坑--部署到服务器上显示pdf.mjs viewer.mjs找不到资源
  • OpenAI GPT o1技术报告阅读(2)- 关于模型安全性的测试案例
  • MyBatis参数处理
  • Python从0到100(五十八):机器学习-随机森林及对复杂数据集分类
  • 【Redis入门到精通二】Redis核心数据类型(String,Hash)详解
  • 负载均衡是什么意思?盘点常见的三种方式
  • 彻底掌握Android中的ViewModel
  • 14张图深度解密大厂秒杀系统库存设计,不是所有的库存都能支持高并发!
  • 口语训练材料
  • OpenCV特征检测(5)检测图像中的角点函数cornerMinEigenVal()的使用
  • Debezium日常分享系列之:将容器镜像移至 quay.io
  • LPDDR4芯片学习(一)——基础知识与引脚定义
  • ONNX那些事
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • ABAP的include关键字,Java的import, C的include和C4C ABSL 的import比较
  • EOS是什么
  • ES10 特性的完整指南
  • JavaScript服务器推送技术之 WebSocket
  • Lsb图片隐写
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • react 代码优化(一) ——事件处理
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 项目管理碎碎念系列之一:干系人管理
  •  一套莫尔斯电报听写、翻译系统
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • 交换综合实验一
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • # dbt source dbt source freshness命令详解
  • # Redis 入门到精通(九)-- 主从复制(1)
  • # 数论-逆元
  • #{}和${}的区别是什么 -- java面试
  • #pragma data_seg 共享数据区(转)
  • #鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行
  • (2)空速传感器
  • (Forward) Music Player: From UI Proposal to Code
  • (附表设计)不是我吹!超级全面的权限系统设计方案面世了
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (七)Flink Watermark
  • (十六)串口UART
  • (十三)MipMap
  • (转)memcache、redis缓存
  • (转)机器学习的数学基础(1)--Dirichlet分布
  • (自用)网络编程
  • .net core使用ef 6
  • .NET MAUI Sqlite数据库操作(二)异步初始化方法
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .net8.0与halcon编程环境构建
  • .NET未来路在何方?
  • @antv/x6 利用interacting方法来设置禁止结点移动的方法实现。
  • @SuppressWarnings注解