以后再完善这个博客
一、vector(vector< type >v)
v.push_back(type num);//在末尾添加num
v.pop_back();//删除末尾元素
v.size();//获取v中元素个数
v.resize(type num)把v的长度设定为n个元素(不会初始化长度内的已有元素)
v.empty();//判断v是否为空,空返回1,非空0
v.clear()//清空,size变为0
v.insert(iterator it,type num)//在it指向元素前插入一个元素
v.erase(iterator it)//删除迭代器指向元素
v.front()//返回首元素的引用
v.back()//返回尾元素的引用
v.begin()返回指向首元素的迭代器
v.end()返回尾迭代器
二、string(s)
(非函数部分)
s1=s2//将s2字符串赋给s1
s1==s2、s1!=s2、s1<s2…//比较两字符串
s1=s1+s2、s1+=s2//将s2连到s1后面
(函数部分)
cin>>s1不能输入空格,用getline(cin,s1)可以输入
s[n]返回字符串中下标为n的字符//同数组的a[n]一样
s.substr(p,n)返回从s的下标p开始的n个字符组成的字符串
s.length()返回字符串长度
s.empty()判断s是否为空,空返回1,非空放回0
//下面几个函数好像可以写几种形参,就不乱写了
s.erase()
s.insert()
s.insert()
s.replace()
s.find()
s.rfind()
三、queue(queue< type>q)
(queue只能在容器末尾添加元素,在头部移出元素)
q.push(元素)//末尾添加
q.pop()//头部出队
q.front()//获取头部元素
q.size()//获取q中元素个数
q.empty()//判断q是否为空,空1非0
四、优先队列priority_queue(priority_queue<Type,Container,Functional>pq//数据类型,容器(默认vector),比较函数(默认求大值)(可以自己定义)(如果是结构体类型,要自己重载一个比较运算符)//type可以比较时后两个可以省去后面两个参数)
pq.push(item)//在pq中添加元素
pq.top()//获取pq中最大的元素
pq.pop()//使最大元素出队
pq.size()//获取pq中元素个数
pq.empty()//老empty了
五、set(集合)
六、map(映射)
七、bitset(二进制有序集)
八、max(val1,val2)返回更大的值
九、min(val1,val2)返回小值
十、swap(type,type)交换值,类型可以是值也可以是容器
十一、sort(first,last,compare)//快排
first为起始位置,用指针或迭代器
last
compare为比较方式,省略则默认升序,如果排序结构体,必须compar
时间为O(nlogn)
十二、去重函数unique(first,last)
移除区间内的重复项
[first,last]范围内的值必须有序
返回最后一个元素的迭代器
十三、二分函数
lower_bound(first,last,value)
upper_bound(first,last,value)
value为查找的值
lower返回的是序列中第一个大于等于value的元素的位置,时间为O(logn)
upper返回的是值
[first,last]内必须有序,如果找不到就返回last
十四、next_permutation(first,last)
用于求序列[first,last]元素全排列中一个排序的下一个排序