c++的STL(1) -- STL概述

STL(Standard Template Library), 意思为标准模版库

STL主要分为三个部分:  容器, 算法, 迭代器。 

  1. algorithm(算法)  -   对数据进行处理(解决问题) 步骤的有限集合
  2. container(容器)  -   用来管理一组数据元素
  3. Iterator  (迭代器) -   可遍历STL容器内全部或部分元素”的对象

我们在代码的实现过程中,往往会根据特定的需求实现相应的数据结构,比如,我们代码中需要一个动态数组(就是大小可以动态变化的),但是c/c++中是没有直接的动态数组可以使用的。所以我们需要自己去实现这个功能。 

但是,在实现过程中会发现,我们会经常由于类型的不同去书写类似的代码,这样效率就很低了。 

比如:  我们实现了一个存储int类型的动态数组,但是,过一段时间我们又希望动态数组又可以存储float,但是我们之前实现的是存放int数据的。所以,为了存放float类型的数据,需要将动态数组的代码重新写一遍,这显然很麻烦。 

数据结构和算法在我们写代码的过程中经常会用到,所以c++就干脆将这些功能封装到标准库中,在我们使用的时候,直接引入头文件就可以使用相应的功能,这样就不用我们每次使用,都要去写这些代码,避免了重复造轮子。 

因为实现STL时,使用了c++的模板,所以对于不同的类型,也就不需要我们自己去写,交给编译器就行了。 

STL被组织为下面的13个头文 件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack> 和<utility>。 

注意:  STL中的方法很多,我们没必要去记忆,在使用时根据提示或者查看文档具体了解就行,先清楚基本的用法。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/724962.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java开发手册,java高并发高可用面试题

前言 今年我也33了&#xff0c;离传说中不好找工作的35岁又更近了。说没有焦虑是对自己撒谎&#xff0c;于是我采访了一些人&#xff0c;自己思考了下&#xff0c;写下了这篇文章&#xff0c;希望能有些共鸣。 先看看大家的态度&#xff1a; 色老力衰&#xff0c;不好忽悠&a…

Spring全家桶面试题-学习自测

Spring相关面试题&#xff1f; Bean的实例化和Bean的初始化有什么区别&#xff1f;什么是AOP、能做什么&#xff1f;有哪些常见的概念名称&#xff1f;它和AsepctJ有什么区别&#xff1f;Spring中的事务是如何实现的&#xff1f;Spring的传播机制有哪些&#xff0c;底层是如何…

rt-thread uart驱动

uart驱动描述基于GD32F470芯片。 rt-thread提供了一套I/O设备模型&#xff0c;如果想要使用操作系统的驱动去进行操作&#xff0c;就得将具体芯片的硬件驱动注册到设备驱动框架上。 关于rt-thread的I/O设备模型相关内容可以参考 rt-thread I/O设备模型-CSDN博客文章浏览阅读55…

vue命令行

书接上回&#xff0c;一直没能将vue-shop-master项目启动&#xff0c;还是停留在命令行&#xff0c;现参考链接如下&#xff0c; https://blog.csdn.net/jieyucx/article/details/127915699 止步不前了&#xff0c;晚上再摸索吧&#xff0c;搞电商去。。。。溜了溜了&#x…

MySQL进阶之(四)InnoDB数据存储结构之行格式

四、InnoDB数据存储结构之行格式 4.1 行格式的语法4.2 COMPACT 行格式4.2.1 记录的额外信息01、变长字段长度列表02、NULL 值列表03、记录头信息 4.2.2 记录的真实数据 4.3 Dynamic 和 Compressed 行格式4.3.1 字段的长度限制4.3.2 行溢出4.3.3 Dynamic 和 Compressed 行格式 4…

nodejs google search console api对接之提交网址到索引

推荐一款AI网站&#xff0c; AI写作与AI绘画智能创作平台 - 海鲸AI | 智能AI助手&#xff0c;支持GPT4设计稿转代码 要使用 Node.js 通过 Google Search Console API 添加网址&#xff08;即提交网址到索引&#xff09;&#xff0c;你需要遵循以下步骤&#xff1a; 设置Google…

【Flutter 】get-cli init报错处理

报错内容 get init 命令跳出,报错内如下 Select which type of project you want to creat Synchronous waiting using dart:cli waitFor Unhandled exceotion . Dart WaitforEvent is deprecated and disabled by default. This feature will be fully removed in Dart 3.4 …

【定岗定编】某度假村酒店客房部定岗定编管理咨询项目纪实

该度假村酒店由于地域广阔&#xff0c;将客服部分为了四个不同区域&#xff0c;这样就导致了在不同的区域员工的接待量不均衡的状况&#xff0c;引起了员工的强烈不满。如何合理地配置客户部人员以及如何合理地鉴定员工的工作量成为该酒店所面临的两大难题。让我们来看看在人力…

C语言——assert函数

目录 深入了解C语言中的assert函数 assert函数的基本用法 assert函数的工作原理 示例代码 总结 深入了解C语言中的assert函数 在C语言中&#xff0c;assert函数是一个非常有用的调试工具&#xff0c;用于在程序中插入断言&#xff0c;以便在运行时检查特定条件是否满足。如…

vulhub中ThinkPHP5 SQL注入漏洞 敏感信息泄露

漏洞原理 传入的某参数在绑定编译指令的时候又没有安全处理&#xff0c;预编译的时候导致SQL异常报错。然而thinkphp5默认开启debug模式&#xff0c;在漏洞环境下构造错误的SQL语法会泄漏数据库账户和密码 启动后&#xff0c;访问http://your-ip/index.php?ids[]1&ids[]2…

即插即用篇 | YOLOv8 引入 NAM 注意力机制 | 《NAM: Normalization-based Attention Module》

论文名称:《NAM: Normalization-based Attention Module》 论文地址:https://arxiv.org/pdf/2111.12419.pdf 代码地址:https://github.com/Christian-lyc/NAM 文章目录 1 原理2 源代码3 添加方式4 模型 yaml 文件template-backbone.yamltemplate-small.yamltemplate-large…

[蓝桥杯 2015 省 B] 移动距离

题目链接 [蓝桥杯 2015 省 B] 移动距离 题目描述 X X X 星球居民小区的楼房全是一样的&#xff0c;并且按矩阵样式排列。其楼房的编号为 1 , 2 , 3 , . . . 1,2,3,... 1,2,3,...。 当排满一行时&#xff0c;从下一行相邻的楼往反方向排号。 比如&#xff1a;当小区排号宽度为…

C++之类型转换

C语言中的类型转换 在C语言中, 如果赋值运算符左右两侧类型不同, 或者形参与实参类型不匹配, 或者返回值类型与 接收返回值类型不一致时, 就需要发生类型转化, C语言中总共有两种形式的类型转换: 隐式类型转换和显式类型转换 1. 隐式类型转化是关联度很强, 意义相近的类型之间…

【CSP试题回顾】201512-2-消除类游戏

CSP-201512-2-消除类游戏 解题思路 输入棋盘大小和颜色: 首先&#xff0c;程序从标准输入读取两个整数n和m&#xff0c;分别代表棋盘的行数和列数。然后&#xff0c;程序读取接下来的n行输入&#xff0c;每行包含m个整数&#xff0c;代表棋盘上每个方格中的棋子颜色。 初始化…

[蓝桥杯 2017 省 A] 油漆面积 Java代码及一些个人理解

[蓝桥杯 2017 省 A] 油漆面积 题目描述 X 星球的一批考古机器人正在一片废墟上考古。 该区域的地面坚硬如石、平整如镜。 管理人员为方便&#xff0c;建立了标准的直角坐标系。 每个机器人都各有特长、身怀绝技。它们感兴趣的内容也不相同。 经过各种测量&#xff0c;每个…

【论文速读】 | AI驱动修复:漏洞自动化修复的未来

本次分享论文为&#xff1a;AI-powered patching: the future of automated vulnerability fixes 基本信息 原文作者&#xff1a;Jan Nowakowski, Jan Keller 作者单位&#xff1a;Google Security Engineering 关键词&#xff1a;AI, 安全性漏洞, 自动化修复, LLM, sanitiz…

代码随想录算法训练营第五十一天|309. 买卖股票的最佳时机含冷冻期、714. 买卖股票的最佳时机含手续费。

309. 买卖股票的最佳时机含冷冻期 题目链接&#xff1a;买卖股票的最佳时机含冷冻期 题目描述&#xff1a; 给定一个整数数组prices&#xff0c;其中第 prices[i] 表示第 i 天的股票价格 。​ 设计一个算法计算出最大利润。在满足以下约束条件下&#xff0c;你可以尽可能地完成…

java项目启动脚本

在Linux系统上发布Java项目通常涉及以下步骤&#xff1a; 打包项目&#xff1a;首先&#xff0c;需要将Java项目打包成可执行的 JAR 文件。你可以使用构建工具如 Maven 或 Gradle 来构建项目并生成 JAR 文件。上传JAR文件&#xff1a;将打包好的 JAR 包上传到服务器的目标位置…

Objective-C blocks 概要

1.block的使用 1.1什么是block&#xff1f; Blocks是C语言的扩充功能&#xff1a;带有自动变量&#xff08;局部变量&#xff09;的匿名函数。 “带有自动变量”在Blocks中表现为“截取自动变量" “匿名函数”就是“不带名称的函数” 块&#xff0c;封装了函数调用及调用…

全方位碾压chatGPT4的全球最强模型Claude 3发布!速通指南在此!保姆级教学拿脚都能学会!

&#x1f389;&#x1f389;欢迎光临&#xff0c;终于等到你啦&#x1f389;&#x1f389; &#x1f3c5;我是苏泽&#xff0c;一位对技术充满热情的探索者和分享者。&#x1f680;&#x1f680; &#x1f31f;持续更新的专栏《Spring 狂野之旅&#xff1a;从入门到入魔》 &a…