做acm用到的幾個C++庫函數

在做acm時往往利用庫函數可以既方便又高效的解決一些問題,下面就記錄下最近用到的庫函數來幫助自己熟悉STL,不定期跟新。

1.sort()函數

stl自帶的排序函數,使用頭文件的#include <algorithm>。在排序問題中使用此函數可以省去很多精力。

int main()
{
string arr[100];
string tmp;
while(cin>>tmp)
arr[++index]=tmp;
sort(arr,arr+index+1);//利用sort函數排序
for(int i=0;i<=index;i++)
    {
        cout<<arr[i]<<endl; 
    }
return 0;
}

此例中sort函數有兩個參數,第一個是指向序列頭的指針,第二個是指向序列尾下一位的指針。默認升序排序。

sort還可以有第三個參數,形式如:sort(arr,arr+index+1,cmp);cmp是自定義的比較規則,下面的例子就是按照兩個字符串中A的數量進行排序的規則。

bool cmp(string str1,string str2)
{
int num1=0,num2=0;
for(int i=0;i<str1.length();++i)
{
if(str1[i]=='A')
num1++;
}
for(int i=0;i<str2.length();++i)
{
if(str2[i]=='A')
num2++;
}
return num1<num2;
}


2._strrev()函數(strrev()已經過時了,新版本加下劃線)

字符串逆置函數,頭文件#include <string.h>,參數是一個char數組。處理字符串的利器,返回一個逆置字符串的指針。例子如下

int main()
{
        char temp[100];
char *tmp;
        cin>>temp;
tmp=strrev(temp);
        cout<<tmp;
        return 0; 
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章