![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++库函数的使用
run around
这个作者很懒,什么都没留下…
展开
-
bitset的用法
bitset,是一个仅含0/1的一个数组。但是它的每个位置只占1bit。主要用于快速的集合位运算。#include <iostream>#include <bitset> //使用时需要声明using namespace std;int main(){ ios::sync_with_stdio(false); cin.tie(0); //bitset<N> s N为数组的大小 bitset<23> s1(4); bitset原创 2020-10-07 16:23:41 · 274 阅读 · 0 评论 -
unique函数的使用
unique的作用是“去掉”容器中相邻元素的重复元素(不一定要求数组有序),它会把重复的元素添加到容器末尾(所以数组大小并没有改变),而返回值是去重之后的尾地址。用法:unique(数组首地址,数组尾地址)#include <iostream>#include <vector>#include <algorithm> using namespace s...原创 2019-07-20 09:51:42 · 382 阅读 · 0 评论 -
deque(双端队列)的使用
栈是只能从首部入栈,首部出栈。队列是只能从队尾入队,从队首出队。而双端队列,既可以从队首入队,队尾入队;还可以从队首出队,队尾入队。头文件: #include < queue >int main(){ deque<int> q; //声明一个双端队列 q.push_back(1); //往队列的队尾插入一个元素 q.push_front(2); ...原创 2019-07-16 14:29:57 · 123 阅读 · 0 评论 -
string的使用
#include <iostream>#include <string>using namespace std;int main(){ string a = "abcdf"; int k = a.find('r'); //寻找r出现的位置,从0开始,不存在返回-1; cout << k << endl; a.substr(1,3)...原创 2019-07-10 19:58:40 · 86 阅读 · 0 评论 -
next_permutation与prev_permutation函数用法
关于排列问题,STL库给我们提供了两个函数,next_permutation与prev_permutation,使用两个参数:数组起始位置和结束位置,每执行一次就获得这个数组下一个的全排列或上一个全排列。注意:当该序列是字典序最大时,使用next_permutation函数会返回一个flase。#include <iostream>#include <algorithm&g...原创 2019-07-08 15:36:49 · 133 阅读 · 0 评论 -
rand函数的用法
rand函数用于产生一个随机数头文件 : #include < cstdlib >该算法需要一个起始值,称为种子,以生成数字。如果没有给出一个种子,那么它将在每次运行时产生相同的数字流。 int a = rand();虽然说rand()产生的数是随机数,但是编译器重新编译后输出的结果是相同的这时候如果我们想要每次都产生不一样的随机数,要在每次运行程序时获得不同的随机数字流,...原创 2019-04-24 21:50:42 · 8013 阅读 · 1 评论 -
map的使用
map,我们一般称为字典或是映射,它提供了一对一的映射关系使用场景 : map用于查找问题中某个元素出现的次数,比如问‘a’这个元素在数组中出现了多少次。这个只是最基本的应用场景,由于可以有任意的键值对的对应,map的应用远不止于此头文件 : #include < map >定义 : map< typename,typename > ma ,这里的typename可以...原创 2019-04-24 20:00:30 · 168 阅读 · 0 评论 -
set的使用
set,顾名思义,它是一个集合,它当中没有重复的元素,并按照从小到大的顺序排列好头文件 : #include < set >定义 : set< typename > s //这里的typename可以是任何一种数据类型使用 s.insert(x); //插入一个元素,复杂度为log(n) s.erase(x); //删除一个元素,复杂度为log(n); ...原创 2019-04-24 17:32:14 · 143 阅读 · 0 评论 -
lower_bound和upper_bound的使用
lower_bound和upper_bound是二分查找法的一大应用头文件 : #include < algorithm >复杂度 : log(n)注意事项 : 使用的数组必须有序,否则会发生逻辑上的错误#include <iostream>#include <algorithm>#include <vector>using names...原创 2019-04-28 19:45:12 · 240 阅读 · 0 评论 -
priority_queue优先队列的使用
优先队列,本质上就是一个最大堆或者最小堆,最大堆就是优先级最大的那个数在堆顶,最小堆就是优先级最小的在堆顶,这里的优先级指的是数值的大小,也可以通过自己重载<号来重新定义比较方式头文件 : #include < queue >定义 : priority_queue < typename > q;这里的typename可以是任意的数据型:int,double,st...原创 2019-04-22 10:39:19 · 95 阅读 · 0 评论 -
vector的使用
vector是一个变长数组,在平时的使用的会常常用到,当我们常常需要在一个数组后频繁插入和删除一个元素时,就可以考虑使用vector,而且vector初始化比较方便,用起来比较舒服;头文件 : #include < vector >定义 : vector< typename > vec; //typename可以是任意的数据结构使用 vector<int>...原创 2019-04-25 19:54:54 · 93 阅读 · 0 评论 -
Sort函数
当我们要对一个数组进行排序时,C++为我们提供了Sort函数,简单且复杂度低复杂度:nlog(n)调用库函数:#include < algorithm >基本格式:sort(a1,a2,a3)第一个参数a1:要排序数组的起始地址第二个参数a2:要排序数组的终止地址第三个参数a3:自己定义的函数,用于自定义排列方式情况1:对一个普通数组进行排序int a[100]; //...原创 2019-04-21 11:33:14 · 144 阅读 · 0 评论