IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C++ STL学习路线及笔记 -> 正文阅读

[数据结构与算法]C++ STL学习路线及笔记

什么是STL

C++ STL(标准模板库)是一套功能强大的 C++ 模板类,提供了通用的模板类和函数,这些模板类和函数可以实现多种流行和常用的算法和数据结构,如向量、链表、队列、栈。

C++ 标准模板库的核心包括以下三个组件:容器、算法、迭代器

容器

???????STL学习笔记 - pyyyyyy - 博客园 (cnblogs.com)

vector 是采用倍增思想实现增强型数组;

queue?基本数据结构队列,先进先出;

stack?基本数据结构——栈,先进后出;

string 定义了对字符串操作的一些方法;

priority_queue 队列的扩展——优先队列,存入的数据默认按照从大到小排序,还可自定义;

deque 队列扩展——双端队列,双端队列中的元素既可以从队首进/出队,也可以从队尾进/出队,可支持像数组下标的方式随机访问;

set?数组扩展——其内部元素默认按升序排列,且具有元素不可重复的性质;

multiset?set集合扩展——有序多重集合,和set不同的是其中元素可以重复;

bitset?内部存储的是01串,可以被看作一个bool数组,它比bool数组更优秀的优点是:节约空间,节约时间,支持基本的位运算。

map?双列数据结构,是一个映射容器有键值和映照数据两个部分组成;和map类似的还有pair;

算法

(33条消息) C++ STL 常见算法(比较详细)_xyqqwer的博客-CSDN博客_c++算法

查找算法

find / find_if

统计算法

count / count_if

可变序列算法

复制 copy

替换 replace

填充?fill

随机生成 generate

移除 remove / unique

排序算法?

字典序排序?sort

随机排序 random_shuffle

反转 reverse

旋转排序 rotate

合并并排序 merge

关系算法

判断两个区间元素是否相等 equal

判断是否有包含关系 includes

求最大/最小元素下标 max_element / min_element

迭代器

正向迭代器?容器类名::iterator? 迭代器名;

反向迭代器?容器类名::reverse_iterator? 迭代器名;

迭代器遍历:

for (vector<int>::reverse_iterator i = v.rbegin(); i != v.rend(); ++i)
     cout << *j << " ";

随机访问迭代器:随机访问迭代器具有双向迭代器的全部功能。若 p 是一个随机访问迭代器,i 是一个整型变量或常量,则 p 还支持以下操作:

  • p+=i:使得 p 往后移动 i 个元素。
  • p-=i:使得 p 往前移动 i 个元素。
  • p+i:返回 p 后面第 i 个元素的迭代器。
  • p-i:返回 p 前面第 i 个元素的迭代器。
  • p[i]:返回 p 后面第 i 个元素的引用。
容器迭代器功能
vector随机访问
deque随机访问
list双向
set / multiset双向
map / multimap双向
stack不支持迭代器
queue不支持迭代器
priority_queue不支持迭代器

辅助函数

  • advance(p, n):使迭代器 p 向前或向后移动 n 个元素。
  • distance(p, q):计算两个迭代器之间的距离,即迭代器 p 经过多少次 + + 操作后和迭代器 q 相等。如果调用时 p 已经指向 q 的后面,则这个函数会陷入死循环。
  • iter_swap(p, q):用于交换两个迭代器 p、q 指向的值。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-12-03 13:17:15  更:2021-12-03 13:19:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/30 2:34:23-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码