1.C++ algorithm 常用函数
max(x,y) min(x,y) abs(x)x必须为整数 swap(x,y)交换x和y的值
reverse(it,it2) 将数组指针在[it,it2]之间的元素进行反转

1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 int main() 7 { 8 int a[10] = {0,1,2,3,4,5,6,7,8,9}; 9 reverse(a+2,a+7); 10 for(int i=0;i<10;i++){ 11 printf("%d ",a[i]); 12 } 13 //输出: 0 1 6 5 4 3 2 7 8 9 14 printf(" "); 15 return 0; 16 }
fill(start,end,value) 把数组中的某一段区间赋为某个相同的值

1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 int main() 7 { 8 int a[10] = {0,1,2,3,4,5,6,7,8,9}; 9 fill(a+2,a+7,0); 10 for(int i=0;i<10;i++){ 11 printf("%d ",a[i]); 12 } 13 //输出: 0 1 0 0 0 0 0 7 8 9 14 printf(" "); 15 return 0; 16 }
sort(a,a+n) 默认为递增排序,递减排序就要增加比较函数 sort(a,a+n,cmp),除数组还可对STL中的vector/deque等排序

1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 using namespace std; 5 6 bool cmp(int a,int b){ //要递减排序,增加比较函数 7 return a>b; 8 } 9 10 int main() 11 { 12 int a[10] = {345,2,245,23,4545,66,567,57,123,234}; 13 sort(a,a+10,cmp); 14 for(int i=0;i<10;i++){ 15 printf("%d ",a[i]); 16 } 17 //输出: 4545 567 345 245 234 123 66 57 23 2 18 printf(" "); 19 return 0; 20 }
2.C++ string
初始化 string str = "abc" / string a1(str)
比较 == > >= < <= != 字典规则比较,从前往后,逐位比较
+ += 连接两个字符串 [ ] 获取特定字符
特性 length() 长度 size() 大小 find(str,index,length) 从index开始 ,长度为length 返第一次出现位置
insert(p,str2) 在位置p插入str2 substr(start,end) 提取子串 replace(start,end) 删除 append(str2) 添加
3.公式
等差数列:
等比数列: