C++ STL库总览

【C++】STL简介 STL简介。开始学习STL之前,是不是得先知道STL是个什么东西,以及如何学习STL呢?话不多说,开始我们今天的内容!是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。本篇博客主要介绍了有关STL的历史,主流版本,六大组件,以及其优缺点和学习方法等内容。希望能帮助到大家。♥C++ 阅读详情

STL介绍

STL包括:容器、算法、迭代器

容器:即存放数据的地方。在STL中,容器分为两类:序列式容器和关联式容器。

  • 序列式容器,其中的元素不一定有序,但都可以被排序。如:vector、list、deque、stack、queue、heap、priority_queue、slist;
  • 关联式容器,内部结构基本上是一颗平衡二叉树。所谓关联,指每个元素都有一个键值和一个实值,元素按照一定的规则存放。如:RB-tree、set、map、multiset、multimap、hashtable、hash_set、hash_map、hash_multiset、hash_multimap。
    下面各选取一个作为说明。
    vector:它是一个动态分配存储空间的容器。区别于c++中的array,array分配的空间是静态的,分配之后不能被改变,而vector会自动重分配(扩展)空间。
    set:其内部元素会根据元素的键值自动被排序。区别于map,它的键值就是实值,而map可以同时拥有不同的键值和实值。

算法:如排序,复制……以及个容器特定的算法。
迭代器:迭代器提供了一种方法,使它能够按照顺序访问某个容器所含的各个元素,但无需暴露该容器的内部结构。它将容器和算法分开,好让这二者独立设计。

STL 对比

13个头文件

库数据结构描述实现应用场景使用详解
<vector>向量连续存储的元素可变数组数组vector详解
<list>列表在常规时间内,在序列已知的任何位置插入或删除元素,无法通过位置来直接访问序列中的元素由节点组成的双向链表
<forward_list>以单链表的形式存储元素,与list区别它不能反向遍历元素;只能从头到尾遍历
<queue>队列包含先入先出的事务处理时队列
<deque>双队列可以在容器的头部和尾部高效地添加或删除对象双端队列
<priority_queue>会对元素排序,从而保证最大元素总在队列最前面的队列
<queue>优先队列
<set>集合由节点组成的红黑树,不同元素不能拥有相同次序、键值相当,默认生序排列
<multiset>多重集合循序存在两个次序相等的元素的集合
<map>映射有键-值对组成
<multimap>多重映射允许键对有相同的次序
<stack>栈后入先出(Last-In-First-Out,LIFO)的压入栈
<iterator>–
<memory>–
<numeric>–
<algorithm>–
<functional>–
<utility>–
标准c++库和stl库,boost库,qt库的总结(一) 用了很长时间是stdio iostream 等头文件,一直有个疑惑,也用了很长一段是键的stl标准库中个别的类,间接性的知道了boost库,qt库等一系列的库 昨天在有用到#include头文件的时候,想起了istream ostream fstream这些类到底在c++标准中占什么位置,记得在大脑中一直将他们定性到c++标准库,有忽然想起了stl标准模板库里面各个分类里没有包含io这个类别的, 阅读详情

相关推荐

VMware桥接模式实战:用手机热点给Linux虚拟机共享网络(附WiFi适配技巧)

本文详细介绍了在移动办公场景下,如何为VMware中的Linux虚拟机配置桥接模式,以通过手机热点共享网络。文章深入解析了桥接模式在无线环境下的工作原理,提供了从主机端准备、VMware设置到Linux虚拟机内部配置的完整实战步骤,并针对手机热点的特殊性,分享了MTU优化、DNS配置及常见网络问题的诊断与解决方案,帮助用户实现稳定高效的移动虚拟化办公。

2y3u4i5o6p的博客 1194

C++STL常用库的详解和应用

STL简介 STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。现在虽说它主要出现在C++中,但在被引入C++之前该技术就已经存在了很长的一段时间。STL的代码从广义上讲分为三类:algorithm(算法)、conta...

ding_programmer的博客 6069

Android 16(API 36)状态栏颜色适配全攻略:从沉浸式到自定义背景

本文全面解析Android 16(API 36)强制沉浸式状态栏带来的适配挑战,提供了从FrameLayout包裹法到动态修改Window背景色的核心解决方案。针对传统状态栏颜色设置失效问题,详细阐述了如何利用WindowInsets API实现自定义背景,并涵盖全屏模式、Fragment切换及第三方ROM兼容性等实战场景,为开发者提供一站式适配指南。

weixin_29227425的博客 594

C++常用STL库详细总结

C++STL库函数总结 #incude< algorithm >库函数1.sort排序2.reverse倒转3.unique去重4.二分查找5.find函数查找6.字符串和整型的互换7.排列组合 #include< vector >库函数1.vector介绍2.vector的功能函数 #include< stack >堆栈库函数1.stack介绍2.stack的函数 #include< queue >队列库函数1.queue正常

学习永无止境 7010

基于python获取网易云热门歌单及封面

先看一下图片背后的代码 非常好,里面歌单名字,id,以及封面图片都有了.在复制url的时候注意把/#删掉,要不然爬不了. import requests from lxml import etree url='https://music.163.com/discover/playlist' head={ 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Ch

ziyuan12345678的博客 536

抖音风控参数‘bd-ticket-guard-client-data’深度解析:从X.509证书到请求签名的完整链路

本文深度解析抖音风控参数‘bd-ticket-guard-client-data’的技术实现,从X.509证书体系到请求签名的完整安全链路。通过Python代码示例,揭示证书生成、签名算法及票据封装等核心机制,帮助开发者理解现代平台风控系统的多层防御架构设计。

weixin_42525738的博客 432

C++中的STL库

STL(Standard Template Library,标准模板库)是 C++ 中的一个重要部分,提供了丰富的通用模板类和函数模板,用于实现常见的数据结构和算法。它的设计目标是提供高效、灵活和可复用的程序组件,使得开发者可以更加专注于问题的解决而不是数据结构和算法的实现细节。

L_xuansg的博客 2477

Nmap的介绍、安装 并进行网络扫描

Nmap概述 Nmap(Network Mapper(网络映射器))是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端。确定哪些服务运行在哪些连接端,并且推断计算机运行哪个操作系统(这是亦称 fingerprinting)。它是网络管理员必用的软件之一,以及用以评估网络系统安全。 正如大多数被用于网络安全的工具,nmap 也是不少黑客及骇客(又称脚本小子)爱用的工具 。系统管理员可以利用nmap来探测工作环境中未经批准使用的服务器,但是黑客会利用nmap来搜集目标电脑的网络设定,从而计划攻击的方法。

Cheney ' blog 2万+

C++之STL库简介

迭代器(Iterators):STL库提供了多个迭代器类,包括input_iterator、output_iterator、forward_iterator、bidirectional_iterator、random_access_iterator等,这些迭代器类支持不同的遍历方式和访问方式,可以帮助程序员快速、方便地访问容器中的元素。算法(Algorithms):STL库提供了大量的算法函数,包括查找、排序、变换、数值计算等,这些算法函数可以对容器中的元素进行操作,从而实现各种有用的功能。

华数云图小分队的博客 1896

1.4 《SST通用技术规范》整体框架与核心条款解读

本小节以**GB/T《电力电子变压器通用技术要求》**(固态变压器SST核心通用规范)为核心依据,结合电力电子变压器技术特性与工程应用边界,系统解析规范的整体章节框架、层级逻辑与强制性/推荐性核心条款,明确规范与传统工频变压器标准的差异,为SST拓扑设计、性能验证、出厂检验与工程落地提供标准化依据。全文以标准原文、期刊文献数据与试验规范为支撑,无主观推演与感性表述。

技术工作者 1683

LabVIEW实现TCP通信

在本节中,我们将简要探讨TCP通信的基础知识,并以工业物联网平台TLINK中的云端设备数据发布设计为例,详细阐述在互联网环境下TCP客户端应用程序设计的基本方法。

不脱发的程序猿 1960

STL库简介及常用函数总结

STL 是 C++ 标准模板库(Standard Template Library)的简称。它是 C++ 标准库的一部分,提供了一系列的模板类和函数,用于实现通用的数据结构和算法。STL 包含了多种常见的数据结构(如向量、链表、集合、映射等)和算法(如排序、搜索、合并等),这些都是高效的、可复用的,并且经过了严格的测试和优化。STL 的设计目标是提供通用的解决方案,使得开发者能够更快速、更方便地编写高效的代码。容器(Containers)

m0_54618081的博客 1991

分子对接时,如何批量处理小分子受体和蛋白配体,让他们快速转化为pdbqt格式,然后用vina跑?

🏆本文收录于 《全栈Bug调优(实战版)》 专栏,该专栏专注于分享我在真实项目开发中遇到的各类疑难Bug及其深层成因,并系统提供高效、可复现的解决思路和实操方案。无论你是刚入行的新手开发者,还是拥有多年项目经验的资深工程师,本专栏都将为你提供一条系统化、高质量的问题排查与优化路径,助力你加速成长,攻克技术壁垒,迈向技术价值最大化与职业发展的更高峰🚀!

**My Coding Family** 1222

STL库简介

一、前言 STL是c++中的一个标准模板库,作为C++标准不可缺少的一部分,STL应该是渗透在C++程序的角角落落里的。STL不是实验室里的宠儿,也不是程序员桌上的摆设,她的激动人心并非昙花一现。本教程旨在传播和普及STL的基础知识,若能借此机会为STL的推广做些力所能及的事情,到也是件让人愉快的事情。 二、什么是STL "什么是STL?",假如你对STL还知之甚少,那么我...

卑鄙的我 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

C++ STL库与Boost库发展历程及详细介绍

C++ STL库与Boost库发展历程及详细介绍

深耕嵌入式领用多年, 致力于分享嵌入式领域技术! 1976

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

c++之STL详解

万字长文带你深度了解c++STL

ltzoro的博客 7543

C++和Java中STL库入门

C++和Java中STL库入门STL简介为什么使用STLSTL基本概念STL使用前的初始化C++里STL基本容器详解 STL简介 STL简称标准模版库,被容纳在C++标准程序库,包含了许多基本数据结构和基本算法,使程序员写起来得心应手。 为什么使用STL 在学习数据结构的时候,在程序中会使用到堆、栈、队列、链表等一些基本的算法,而学习数据结构的时候,这些基本算法写起来十分繁琐,如果不想写这些,那么就可以考虑一下STL了。 但是不要太过于依赖STL! STL基本概念 要使用STL,需要理解以下几个基本概念:

狙击美佐的博客 3691

标准c++库、stl库,boost库,qt库

C++标准库 C/C++标准库主要包含3部分: STL、IO流及本地化、C的函数库。标准库不是STL,STL是标准模板库,是标准库的一个子集。它是一个可复用的组件库,其中包含了很多实用的算法和数据结构。 C++标准库是std名字空间中的所有内容,就是那些不带.h扩展名的头文件。C++标准库的内容总共在50个标准头文件中定义,其中18个提供了C库的功能。 标准的头文件中,与宏相关的名称在全局作用域中...

selfsongs 4516

C++STL库之algorithm库

一,巡防算法         for_each(容器起始地址,容器结束地址,要执行的方法) [html] view plain copy #include iostream>   #include algorithm>   #include vector>      using namespace std;

wuce_bai的博客 2万+

STL库 总览

   STL库1 泛型程序设计2 STL标准模板库2.1 STL库的基本组件2.1.1 STL基本组件----容器2.1.2 STL基本组件----迭代器2.1.3 STL基本组件----函数对象2.1.4 STL基本组件----算法3 迭代器4 容器的基本功能与分类4.1 顺序容器    1 泛型程序设计   泛型程序设计就是时候,将程序设计的尽量的通用。STL标准库就是泛型程序设计的一个很好的范例。   ◇ 编写不依赖具体数据类型的程序;   ◇ 将算法从特定的数据结构中抽象出来,成为通用的;   ◇

一朵花花送给你、 1068

C++ STL库详解

STL库(英文全称:Standard Template Library,标准模板库),STL库提供了很多模板以供用户使用,从而精简代码,以提升代码的可读性。以快速排序为例:看起来是不是超级复杂?但是!!!一行就搞定了!这就是STL库的魅力!那么,接下来让我们进入STL的奇妙世界吧!

Tianshang301的博客 1653

C++中STL库基本算法

vector<类型名> 变量名;类型名可以是int、double、char、struct,也可以是STL容器:vector、set、queue。//注意:> >之间要加空格>>之间要加空格。vector数组就是一个一维数组,如果定义成vector数组的数组,那就是二维数组。//二维变长数组低维是高维的地址。二维数组中,它的一维形式就是地址。//定义一个3行2列的地址//输出arr第1行的地址//输出arr第2行的地址//输出arr第3行的地址return 0;

2301_79407040的博客 1822

【C++】STL 库

STL的介绍

weixin_61091020的博客 1万+

C++STL库全详解

因此他的迭代器需要维护的信息也很多 但是我们要知道这其中的数据单元是什么 其实还是元素本体 需要有 指向当前元素的指针(找到元素的基本单位) 指向整个指针数组的指针(用来找具体在哪一个缓冲区的指针)指向具体缓冲区的指针(表示当前元素所在的缓冲区)对于对象的构造和析构在空间的申请和释放是分开的 有些对象的构造不需要构造函数 有些对象析构不需要析构函数 将这两个过程分开就能提高程序的性能了 前提是我们需要通过类型萃取来获取类型是否调用 可以通过迭代器来获取 这部分也是比较复杂的。

ye_yumo的博客 2203

cpp stl库有什么

cpp STL、Standard Template Library 算法和数据结构,如向量、链表、队列、栈。 C++ 标准模板库的核心: 容器(Containers)、算法(Algorithms)、迭代器(iterators)、仿函数、内存配置器、配接器 Free C/C++ Libraries, Source Code and Frameworks(thefreecountry.com) htt...

weixin_43172531的博客 425
上一篇: LeetCode1:两数之和 (C、C++、python实现)
下一篇: [算法] 七大排序算法详解
松鼠大哥
博客等级 码龄10年 57粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值