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 < ...
随机推荐
- 【Python入门教程】Python常用表格函数&操作(xlrd、xlwt、openpyxl、xlwings)
在我们使用Python时,避免不了与Excel打交道.同样Python的三方库和代码的简洁性也为我们处理大数据提供了便利.今天给大家介绍一下常用的处理表格的函数,同时还有一些常用的 ...
- 天下苦 Spring 久矣,Solon v2.3.3 发布
Solon 是什么框架? 一个,Java 新的生态型应用开发框架.它从零开始构建,有自己的标准规范与开放生态(全球第二级别的生态).与其他框架相比,它解决了两个重要的痛点:启动慢,费资源. 解决痛点? ...
- Open AI ChatGPT Prompt 学习之基础篇
碎碎念 2023 年,最火的可能就是 openAI 了,其组织代表的产品 chatGTP,相信大家已经有所耳闻.不少同学已经开始着手使用,并截图晒出 ChatGPT 是多么得智能与神奇.而有的同学在使 ...
- 前端Vue仿滴滴打车百度地图定位查找附近出租车或门店信息(更新版)
前端vue仿滴滴打车百度地图定位查找附近出租车或门店信息, 下载完整代码请访问uni-app插件市场地址:https://ext.dcloud.net.cn/plugin?id=12982 效果图如下 ...
- Serverless试飞员的夙愿 | 带您扶摇直上,酣畅淋漓的云上作战
上期博文带您体验了外挂云函数Demo包,感受通过云函数使用云数据库快速突破"音障",进入"长机"云函数+"僚机"云数据库的Serverle ...
- Tomcat启动时出现乱码的解决方式
在网上下载了一个版本号为apache-tomcat-8.5.38的Tomcat,因为这个Tomcat一直没有用过,所以今天启动时出现了如下乱码: 解决方案: 找到Tomcat目录下conf文件夹中的l ...
- 从零玩转系列之SpringBoot3-核心原理
一.简介 1.前置知识 ● Java17 ● Spring.SpringMVC.MyBatis ● Maven.IDEA 2.环境要求 环境&工具 版本(or later) SpringBoo ...
- 最为常用的Laravel操作(3)-模板
Blade 模板引擎 模板继承 定义布局: <!-- 存放在 resources/views/layouts/app.blade.php --> <html> <head ...
- OSS的使用(谷粒商城58-64)
OSS的使用(谷粒商城58-64) 购买之类的就不在这里详述了,阿里云文档几乎都写了 创建bucket 学习阶段,相对独特的点在于我们需要选择公共读 项目开发阶段,不能选择公共读了,要尽量选择私有(代 ...
- springboot整合nacos和dubbo
0. 源码 源码: gitee 1. 版本 java: 1.8.0_281 nacos: 2.1.2 2. 创建项目 创建一个简单的springboot或者maven项目, 或者代码库(gitee/g ...