1. 程式人生 > >演算法筆記-6.8 algorithm標頭檔案下的常用函式

演算法筆記-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()
*/