STL
李歘歘
某不知名学院毕业生、非知名厂打工人
展开
-
algorithm头文件下的常用函数之lower_bound()和upper_bound()
使用algorithm头文件,需要在头文件下加一行“using namespace std”,lower_ bound()和upper_ bound()需要用在一个有序数组或容器中。lower_ bound(first,last,val)用来寻找在数组或容器的[first,last)范围内第一个值大于等于val的元素的位置,如果是数组,则返回该位置的指针;如果是容器,则返回该位置的迭代器。...原创 2019-09-17 09:50:49 · 3495 阅读 · 2 评论 -
algorithm头文件下的常用函数之sort()
顾名思义,sort()就是用来排序的函数,它根据具体情形使用不同的排序方法,效率较高。一般来说,不推荐使用C语言中的qsort()函数,原因是qsort()用起来比烦琐,涉及很多指针的操作。而且sort()在实现中规避了经典快速排序中可能出现的会导致实际复杂度退化到O(n^2)的极端情况。希望读者能通过这篇介绍来轻松愉快地使用sort函数。1.如何使用sort()排序sort()函数的使用...原创 2019-09-05 17:25:09 · 3817 阅读 · 2 评论 -
algorithm头文件下的常用函数之max()、min()、abs()、swap()、reverse()、next_permutation()、fill()
使用algorithm头文件,需要在头文件下加一行“using namespace std”。1.max()、min()、abs()max(x,y)和min(x,y)分别返回x和y中的最大值和最小值,且参数必须是两个(可以是浮点数)。如果想要返回三个数x、y、z的最大值,可以使用max(x,max(y,z)的写法。abs(x)返回x的绝对值。注意:x必须是整数,浮点型的绝对值请用mat...原创 2019-09-04 22:56:30 · 5635 阅读 · 1 评论 -
pair的常见用法详解
pair是一个很实用的“小玩意”,当想要将两个元素绑在一起作为一个合成元素、又不想要因此定义结构体时,使用pir可以很方便地作为一个代替品。要使用pair,应先添加头文件#include <utility>,并在头文件下面加上“ using namespace std;"。注意:由于map的内部实现中涉及pair,因此添加map头文件时会自动添加utiliy头文件,此时如果...原创 2019-09-04 21:38:20 · 8489 阅读 · 0 评论 -
stack的常见用法详解
stack翻译为栈,是STL中实现的一个后进先出的容器。要使用 stack,应先添加头文件include<stack>,并在头文件下面加上“ using namespacestd;"1. stack的定义其定义的写法和其他STL容器相同, typename可以任意基本数据类型或容器:stack<typename> name;2. stack容器内元素的访问...原创 2019-09-04 20:50:53 · 44828 阅读 · 7 评论 -
priority_queue的常见用法详解
priority_queue又称为优先队列,其底层是用堆来进行实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。例如在队列有如下元素,且定义好了优先级:桃子(优先级3)梨子(优先级4)苹果(优先级1)那么出队的顺序为梨子(4)→桃子(3)→苹果(1)。当然,可以在任何时候往优先队列里面加入(push)元素,而优先队列底层的数据结构堆(heap)会随时调整结...原创 2019-09-04 19:47:21 · 21640 阅读 · 4 评论 -
queue的常见用法详解
queue翻译为队列,是一个先进先出的容器,要使用queue,应先添加头文件#include<queue>,并在头文件下面加上“using namespace std;”。1.queue的定义:定义的写法和其他STL容器相同, typename可以是任意基本数据类型或容器:queue<typename> name;2. queue容器内元素的访问:...原创 2019-09-04 13:41:44 · 25135 阅读 · 2 评论 -
map的常用用法详解
map翻译为映射,也是常用的STL容器。众所周知,在定义数组时(如 int array[l00])其实是定义了一个从int型到int型的映射,比如array[0]=25、array[4]=36就分别是将0映射到25、将4映射到36。一个 double型数组则是将int型映射到double型,例如db[0]=3.14,db[1]=0.01。但是,无论是什么类型,它总是将int型映射到其他类型。这...原创 2019-09-04 10:45:16 · 3205 阅读 · 0 评论 -
string的常用用法详解
一般我们在C语言中用到字符串,都是使用字符数组来存放,但是操作字符数组有时候会不便,所以为了方便操作,在C++的STL中加入了字符串类型(string)。想要复习以往字符数组的相关知识点请点击以下链接:字符串的输入输出字符串操作字符串的sscanf和sprintf(选看)如果要使用 string,需要添加 string头文件,即# include<string> ...原创 2019-09-03 15:31:33 · 15764 阅读 · 2 评论 -
set的常见用法详解
在一些问题中经常需要用到set,set的最主要作用是自动去重按升序排序。set翻译为集合,是一个内部自动有序且不含重复元素的容器。在出现需要去掉重复元素的情况,而且有可能因这些元素比较大或者类型不是int型而不能直接开散列表,在这种情况下就可以用set来保留元素本身而不考虑它的个数。当然,上面说的情况也可以通过再开一个数组进行下标和元素的对应来解决,但是set提供了更为直观的接口,并且加入se...原创 2019-09-03 13:18:46 · 12114 阅读 · 3 评论 -
vector常用解法及详解
vector的常见用途:(1)储存数据① vector本身可以作为数组使用,而且在一些元素个数不确定的场合可以很好地节省空间。②有些场合需要根据一些条件把部分数据输出在同一行,数据中间用空格隔开。由于输出数据的个数是不确定的,为了更方便地处理最后一个满足条件的数据后面不输出额外的空格,可以先用 vector记录所有需要输出的数据,然后一次性输出。(2)用邻接表存储图...原创 2019-09-03 10:04:22 · 4191 阅读 · 8 评论