做acm用到的几个C++库函数

本文介绍了在ACM竞赛中两个实用的C++库函数:sort()和_strrev()。sort()函数用于方便地对序列进行排序,支持自定义比较规则;_strrev()函数则用于快速地逆置字符串。示例代码展示了这两个函数的具体用法。

在做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; 
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值