cmp函数 の 字典序
我们都知道手写 cmp()
可以重载 sort()
的比较规则
嗯对!
要想手写出比较字典序的 cmp()
我们先要认识另外一个函数 strcmp()
strcmp
函数的排面
原型
int strcmp(const char *s1, const char *s2);
头文件
#include <string.h>
功能
用来比较两个字符串
参数
s1
、s2
为两个进行比较的字符串
返回值
- 若
s1
、s2
字符串相等,则返回零; - 若
s1
大于s2
,则返回大于零的数; - 若
s1
小于s2
,则返回小于零的数。
说明
strcmp()
函数是根据 ACSII码 的值来比较两个字符串的;strcmp()
函数首先将s1
字符串的第一个字符值减去s2
第一个字符,-
- 若差值为零则继续比较下去;
-
- 若差值不为零,则返回差值。
cmp()
的实现
定义结构体储存字符串
struct node{
char str[100005];
}
定义排序规则
字典序
bool cmp(node n1,node n2){
return strcmp(n1.str,n2.str)<0;
}
逆字典序
bool cmp(node n1,node n2){
return strcmp(n1.str,n2.str)>0;
}
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉 完结撒花! AwA 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉