竞赛常用库函数
最值查询
min_element和max_element在vector(迭代器的使用)
nth_element函数的使用
例题lanqiao OJ 497成绩分析
第一种用min_element和max_element函数的写法
第二种用min和max的写法
二分查找
二分查找只能对数组操作
binary_search函数,用于查找数字是否存在(前提是数组已经排完序)
lower_bound(st,ed,x)获取第一个大于等于x的元素的地址
和upper_bound(st,ed,x)获取第一个大于x的元素的地址
地址-首地址=下标
使用这两个的前提是数组必须为非降序
如果你应要用降序,会出现于实际不符的情况
例题:lanqiao OJ 1389二分查找数组元素
大小写转换
islower(用于检查是否是小写字母)/isupper(用于检查是否是大写字母)函数
tolower(转换为小写字母)/toupper(转换为大写字母)函数
用ascil实现大小写转换
实现大小写转换的方法,使用库函数的方法
实现大小写转换的方法,使用ascil的方法
全排序
next_permutation()函数
next_permutation()函数想要得到全部的排列第一数列必须是最小的如1,2,3,用迭代器的写法
next_permutation()函数用数组的写法
prev-permutation()函数函数想要得到全部的排列第一数列必须是最大的如3,2,1
通过结果可知运行到最后它会返回到第一个运行的数列
其他库函数
memset()函数
第一参数是所指地址块,第二个为要设置的值,第三个为重置的元素
memset()函数的解释
swap()函数
reverse()函数
reverse()函数的解释
unique()函数
unique函数的解释
、
unique()说明
STL
pair
pair的定义和结构
pair的定义和结构解释
pair的嵌套
pair自带排序规则
pair代码示例
vector
vector的定义
vector的特性
vector的常用函数注意for循环遍历迭代器的时候里面判断时不能用大于号或者小鱼号可以用不等或者等于号,如下面it!=vec.end(),迭代器返回的是地址所以我们打印需要解引用
vector排序去重
list
list的定义
list的结构
vector和deque是连续的存储空间,list是不连续的存储空间
list的常用函数
stack
stack的定义和结构
stack的常用函数
queue队列
priority_queue优先队列
第一种方式priority_queue优先队列自定义比较函数,最小堆的写法return大于号
第二种方式priority_queue优先队列自定义比较函数,最小堆的写法return大于号
第三种方式priority_queue优先队列不用自定义函数的方法,实现最小堆的写法在priority_queue里面加入greater<>
deque双端队列
例题队列 lanqiao OJ 1113
例题 lanqiao OJ 741 合并果子
set集合
set集合的函数
set集合修改set比较的方法
set集合默认为升序排列
用greater<int>就变为降序了
set集合用仿函数的写法实现降序
multiset多重集合
multiset多重集合有哪些函数
如果想要删除重复元素的第一个重复元素的第一个可以用st.erase(st.find(x))
unordered_set无序集合
unordered_set无序集合可用的函数
set集合代码示例
multiset多重集合案例
equal_range()函数解释多重集合里的函数
C++ STL中multiset equal_range()函数|极客教程 (geek-docs.com)
unordered_set无序集合示例
map
map中的函数
map代码示例
multimap
multimap中的函数
multimap代码示例
unordered_map
unordered_map中的函数
unordered_map代码示例
总结例题
例题01 3226宝藏排序
例题02 1624小蓝吃糖果
用priority_queue优先队列的写法
用max函数的写法
例题03 2490小蓝的括号串1
04 1531快递分拣
小明和完美序列