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 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

浙公网安备 33010602011771号