演算法筆記-6.8 algorithm標頭檔案下的常用函式
#include<stdio.h>
#include<algorithm>
#include<string>
using namespace std;
int main(){
string str="abcdefgh";
reverse(str.begin(),str.begin()+4);
for(int i=0;i<str.length();i++){
printf("%c",str[i]);
}
}
/*
-----------------------------------
1.max(x,y)、min(x,y)、abs()
max(x,y)和min(x,y)-------->引數必須是兩個(可以是浮點數) 如需返回三個數的值則max(x,max(y,z))
abs(x)--------->絕對值 x必須是整數 如果x是浮點型 則可以使用math下面的fabs
2.swap(x,y)
------->交換x,y的值
3.reverse(x,x+n)
------->將a[x]~a[x+n](左閉右開)的元素進行反轉 支援字元陣列和數字陣列
如:String str="abcdefgh"
reverse(str,str+4);
for(int i=0;i<str.length();i++){
printf("%c",str[i]);
}
4.next_permutation()
------->一個數列中全排列中的下一個序列
如int a[10]={1,2,3};
do{
printf("%d%d%d\n",a[0],a[1],a[2]);
}while(next_permutation(a,a+3));
//輸出 123 132 213 231 312 321
5.full()
------->可以將陣列或容器中的某一段區間賦值為相同的值
a[5]={1,2,3,4,5};
fill(a,a+5,233);//將a[0]~a[4]均賦值為233
6.sort()排序....
7.lower_bound()和upper_bound()
*/