个人笔记,日后相忘
可能难以下咽
#include <algorithm>
sort(a,a+n);
stable_sort(a,a+n); //稳定排序
reverse(a,a+n);//反转
//数组有序
unnique(a,a+n);//去重 返回尾部指针,注意长度会变化
len = unnique(a,a+n) - a;
//数组有序 log(n)
lower_bound(a,a+n,10);//返回数组中第一个大于等于10的下标
upper_bound(a,a+n,10);//返回数组中第一个大于10的下标
a={1,2,2,3};
i = lower_bound(a,a+4,2)-a;
j = upper_bound(a,a+4,2)-a;
//i=1, j=3, j-i=2(目标元素个数)
next_permutation(a,a+n);//下一个全排列序列
prev_permutation(a,a+n);//上一个全排列序列
//可以处理有重复元素的全排列
while(next_permutation(a,a+n)){ //无下一序列就返回false,否则返回true
print...
}
//string
string s;
s.length();
s.insert(pos,ch); //在pos位置插字符ch 效率低
s.append(char*) //s尾部添加一个字符串
string类可以直接用<, >, ==,比较
s.find(string) //匹配字符串,返回下标值 若未找到,返回 string::npos
s.substr(pos,len) //从pos开始截取len长子串
sort(s.begin(),s.end()); //排序