c++STL用法总结
一、vector的用法
vector<int> vet;
1、排序:sort(vet.begin(), vet.end()), 时间复杂度O(nlogn)
2、查找:if(find(vet.begin(), vet.end(), x) != vet.end()), 时间复杂度O(n)
二、string的用法
string st1, st2;
1.查找: int pos = st1.find(st2), 从st1中找到一个等于st2的串,并返回第一次出现的位置
//为避免重复查找,可以在找到一个串之后,就将这个串进行更新
三、lower_bound & upper_bound
对于有序数组a而言,在O(logn)时间内返回查找结果
lower_bound:
①int x = lower_bound(a + 1, a + 1 + n, num) - a : 下标从1开始,返回第一个大于等于num的数的位置
②int x = lower_bound(a, a + n, num) - a : 下标从0开始,返回第一个大于等于num的数的位置
upper_bound和lower_bound用法类似,但是返回的是第一个大于num的数的位置
需要注意的是,使用的时候,要注意判断是否找到我们想要的结果。如果返回的位置为n + 1, 说明没找到,这个时候要进行特判!
四、二维map使用


五、map和unordered_map
- map: 基于红黑树,有序(红黑树可自动排序),可在log(n)内完成插入、查找、删除,对单次时间敏感的条件下建议使用。
- unordered_map: 基于hash_table,vector节点挂链表解决冲突,元素无序,数据存储、查询时间复杂度低,可以说是常数,属于空间换时间。
c++STL用法总结的更多相关文章
- 算法拾遗[4]——STL用法
主要bb一下优先队列和字符串吧. 哦还有 bitset. 优先队列 定义很容易: priority_queue<int> pq; 内部是一个堆. 基本操作 pq.top() 取堆顶元素; ...
- STL&&用法集合
.....STL是c++里很强势很好用的一系列容器(函数)之类的,之前一直不太会用,所以总是暴毙....想着快比赛了,是时候理一下这些东西了. -1.pair 存放两个基本元素的东西 定义方法: pa ...
- STL用法之set
[C++::STL]之set的用法 c++ set求差集,并集,交集
- STL用法总结
stringstream用法:对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据导致不同类型的行为. stream << i 将i输入流中 stream >> ...
- STL用法整理
百度百科 STL是Standard Template Library的简称,中文名标准模板库,惠普实验室开发的一系列软件的统称.从根本上说,STL是一些“容器”的集合,这些“容器”有list,vect ...
- STL用法大全
1. 概述 泛型编程思想最早缘于A.Stepanov提出的部分算法可独立于数据结构的论断.20世纪90年代初A.Stepanov和Meng Lee根据泛型编程的理论用C++共同编写了STL.但直 ...
- [笔记]一些STL用法
参考资料:STL 在 OI 中的应用 离散化 std::unique 功能:对有序的容器重新排列,将第一次出现的元素从前往后排,其他重复出现的元素依次排在后面 返回值:返回迭代器,迭代器指向的是重复元 ...
- 转:栈和队列小知识【STL用法】
原文出处:http://blog.csdn.net/chenzhenyu123456/article/details/44519943 栈: (一)头文件 #include<stack> ...
- STL用法
map.find(key) 获取map容器中指定键值x的元素,如果找到,返回此元素的迭代器,否则返回map::end()的迭代器(即查找到容器的末尾都没有找到此元素).
- C++ STL用法总结(持续更新)
Vector 动态数组 https://www.cnblogs.com/zhonghuasong/p/5975979.html lower_bound&&upper_bound htt ...
随机推荐
- Grub2 内核启动参数总结
Grub2 内核启动参数总结 部分参数 biosdevname=0 net.ifnames=0 # 注意这个配置会修改网卡的名字, 比如之前是ens192 # 添加如上两个内容后就会变成 eth0 类 ...
- [转帖]zookeeper三节点集群搭建
https://www.jianshu.com/p/1dcfbf45383b 下载zookeeper Apache源 http://archive.apache.org/dist/zookeeper/ ...
- [转帖]Nginx应用调优案例
https://bbs.huaweicloud.com/blogs/146367 [摘要] 1 问题背景nginx的应用程序移植到TaiShan服务器上,发现业务吞吐量没有达到硬件预期,需要做相应调优 ...
- 【转帖】Docker容器四种网络模式
https://blog.whsir.com/post-5268.html docker自身默认提供了四种网络模式:none.bridge.container.host.除了这四种网络模式外,还可以通 ...
- [转帖]CentOS7完美升级gcc版本方法
https://blog.whsir.com/post-4975.html 在某些应用场景中,需要特定的gcc版本支持,但是轻易不要去编译gcc.不要去编译gcc.不要去编译gcc,我这里推荐使用红帽 ...
- clickhouse 优化实践,万级别QPS数据毫秒写入和亿级别数据秒级返回 | 京东云技术团队
1.背景 魔笛活动平台目前在采集每个活动的用户行为数据并进行查询,解决线上问题定位慢,响应不及时的问题,提升客诉的解决效率.目前每天采集的数据量5000万+,一个月的数据总量15亿+,总数据量40亿+ ...
- 设置echarts线的样式
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 对象数组,如果key中的value相同,不要该项
<script type="text/javascript"> let arr=[ { gradeId: "498094709437239572", ...
- P5963 [BalticOI ?] Card 卡牌游戏【来源请求】
[rt](https://www.luogu.com.cn/problem/P5963)------------## part1### 题意简述给你 $n$ 张纸牌,每张纸牌有两个面.将 $n$ 张纸 ...
- P7036 [NWRRC2016] Folding
题目简述 有两个矩形,大小分别是 \(W \times Y\) 和 $ w \times y$.现在我们要通过折叠将两个矩阵变成一样. 思路 part1 已知一条边折叠一次会变成 \(\frac{x} ...