c++ 常用的 STL
c++ 中常用的 STL
vector
//vector 变长数组 倍增的思想(倍增:系统为每一个程序分配空间的时候,所需要的时间和空间大小无关,与请求次数相关)尽量减少请求的次数
/*
返回元素的个数
size()
判断是否为空
empty()
清空
clear()
front() 返回第一个数 back() 返回最后一个数
push_back()/pop_back()
begin() / end()
支持比较运算
*/
pair<类型, 类型>
/*
pair<int ,int> 可以存储一个二元值,前后两个值 的类型可以使任意的
first 是第一个元素 second 是第二个元素
支持比较运算,以first为第一关键字, second为第二关键字
*/
string
/*
string 字符串
substr(m, n) 下标从 m 开始 长度为 n 的子串
s_str()
size()
empty()
clear()
*/
queue priority_queue
/*
queue 队列
push() 向队尾插入一个元素
pop() 弹出队头元素
front() 返回队头元素 back() 返回队尾元素
priority_queue 优先队列
push() 插入一个元素
top() 返回堆顶元素
pop() 弹出堆顶元素
*/
stack
/*
stack 栈
size()
push() 向栈顶插入一个元素
top() 返回栈顶元素
pop() 弹出栈顶元素
*/
deque
/*
deque 双端队列 队头队尾都可以插入删除
size()
clear()
front()
back()
push_back()/pop_back()
push_front()/pop_front()
begin() / end()
*/
set map multiset multimap
/*
公有地
size()
empty()
begin()/end()
-- ++ 前驱后继
set/multiset
find() 查找一个数
insert() 插入一个数
count() 返回某一个数的个数
erase()
1. 输入一个数x 删除所有的 x 时间复杂度 O(k+logn)
2. 输入一个迭代器 , 删除这个迭代器
lower_bound()/upper_bound()
lower_bound() 返回大于等于x的最小的迭代器
upper_bound() 返回大于x最小的迭代器
map multimap
insert() 插入的数是一个pair
erase() 输入的参数时pair 或者迭代器都可以
find()
[] 可以通过下标取到 时间复杂度 O(logn)
lower_bound/upper_bound
unordered_set unordered_map unordered_mulyiset unordered_multimap
哈希表实现,和上面类似, 增删改查的时间复杂度 O(1)
不支持 lower_bound() / upper_bound()
*/
bitset
/*
bitset 压位
bitset<10000> s;
~ & | ^
== !=
[]
count() 返回多少个1 any() 判断是否至少一个1
none() 判断是否为 0
set() 把所有位置置成1
set(k,v) 把第k位改成v
reset() 把所有位置变成0
*/
c++ 常用的 STL的更多相关文章
- 常用的STL查找算法
常用的STL查找算法 <effective STL>中有句忠告,尽量用算法替代手写循环:查找少不了循环遍历,在这里总结下常用的STL查找算法: 查找有三种,即点线面: 点就是查找目标为单个 ...
- 刷题常用的STL容器总结
本文归纳总结刷题常用到STL容器以及一些标准算法,主要包括: string.vector.map.pair.unordered_map.set.queue.priority_queue.stack,以 ...
- c++常用函数STL
完c++快一年了,感觉很有遗憾,因为一直没有感觉到c++的强大之处,当时最大的感觉就是这个东西的输入输出比C语言要简单好写. 后来我发现了qt,opencv,opengl,原来,c++好玩的狠. 在这 ...
- 常用的STL
map 容器和数组一样,不过比较活用,相当于直接离散化数组 map<int ,int>mp 一维int map<string ,string>mp 一维 str ma ...
- STL 一些常用的STL函数(持续更新
先说一下 一边要用到算法的东西一般要加#include<algorithm>头文件 一.栈和队列 1 栈 :一种线性表 特点 后进先出 头文件 #include<stack&g ...
- STL——配接器、常用算法使用
学习STL,必然会用到它里面的适配器和一些常用的算法.它们都是STL中的重要组成部分. 适配器 在STL里可以用一些容器适配得到适配器.例如其中的stack和queue就是由双端队列deque容器适配 ...
- STL常用序列容器
这里简要的记述一下STL常用容器的实现原理,要点等内容. vector vector是比较常用的stl容器,用法与数组是非类似,其内部实现是连续空间分配,与数组的不同之处在于可弹性增加空间,而arra ...
- STL(常用)
STL 简单记录.讲解一些初级阶段常用的用法. STL是C++的一个标准模板库,其中包含了许多在计算机领域常用的基本数据结构以及基本算法.STL主要依赖于模板,使得STL具有广泛的通用性.这篇文章旨在 ...
- Effective STL中文版 译序
<Effective STL中文版>译序 就像本书的前两本姊妹作(Effective C++.More Effective C++)一样,本书的侧重点仍然在于提升读者的经验,只不过这次将焦 ...
- STL 贺习笔记
贺文链接www.cnblogs.com/zhouzhendong/p/STL.html C++ STL 的一些基础用法 前言 创建一个空的 vector ,我一直是这样写的: vector < ...
随机推荐
- Spring Boot 通用对象列表比较和去重
1.前言 在Excel批量导入数据时,常常需要与数据库中已存在数据的比较,并且需要考虑导入数据重复的可能性. 导入的行数据,一般有一个实体类(对象)与之对应,往往这个实体类在数据库中的字段要比 ...
- SparkMLlib机器学习实践:基于聚类的社交媒体分析
目录 <Spark MLlib 机器学习实践:基于聚类的社交媒体分析> 一.引言 社交媒体作为现代营销的一种重要手段,已经被广泛应用于市场调研.品牌监控.内容分析.用户互动等领域.在这个领 ...
- 基于 Probe 的实时全局光照方案(Probe-based Global Illumination)
目录 Precomputed Probe 预放置 probes 四面体镶嵌(Tetrahedral Tessellations) Indirect Light Cache Volumetric Lig ...
- 快速实现 CDN 直播
功能简介 ZEGO Express SDK 支持推流到 CDN(Content Delivery Network,内容分发网络),包括转推 CDN 和直推 CDN 两种功能.开发者基于该功能可打通 R ...
- Stable Diffusion生成图片的参数查看与抹除方法
前几天分享了几张Stable Diffusion生成的艺术二维码,有同学反映不知道怎么查看图片的参数信息,还有的同学问怎么保护自己的图片生成参数不会泄露,这篇文章就来专门分享如何查看和抹除图片的参数. ...
- Mybatis(日志工厂)
日志工厂 如果一个数据库操作,出现了异常,我们需要排错.所以日志就是最好的助手 曾经:sout.debug 现在:日志工厂 SLF4J[工作中,springboot] LOG4J[掌握] LOG4J2 ...
- react18 hooks自定义移动端Popup弹窗组件RcPop
基于React18 Hooks实现手机端弹框组件RcPop react-popup 基于react18+hook自定义多功能弹框组件.整合了msg/alert/dialog/toast及android ...
- AVR汇编(六):分支指令
AVR汇编(六):分支指令 分支指令用于改变程序的执行流,分为无条件分支和条件分支两类. 无条件分支指令 JMP JMP 指令用于无条件跳转,类似于C中的 goto 关键字, JMP 指令的跳转范围为 ...
- 大怨种的pwn的wp
0x01 pwnable_echo1 军训几天加暑假的活 from pwn import * context(os='linux', arch='amd64', log_level='debug') ...
- 当 GPT-4 拥有了 Diff 视图,那真的是如虎添翼!
目录 1. 当你要求 GPT-4 帮你写点代码时 2. 你需要的背景知识都在这里 2.1 关于 GoPool 和 DevChat 2.2 关于 GoPool 的工作原理 2.3 我想要让 taskQu ...