有时候需要把
char str[][] = {"abc", "bcd", "efg", "gdk"}
这样的进行排序?
输出
abc
bcd
efg
gdk
如果你直接sort(str, str + 4, cmp)这样是不行的,因为字符串的赋值操作都没有定义
就是你不能用一个中间变量char temp[]
然后temp = str[0]; str[0] = str[1]; str[1] = temp;这样。是不行的。
因为sort里面会调用swap(str1, str2)来调换字符串嘛,所以不行。
那么我们知道,结构体的赋值操作,是有定义的。可以用中间变量来完成。
所以我们把它定义成
struct node {
char str[111];
bool operator < (const struct node & rhs) const {
return strcmp(str, rhs.str) > 0;
}
}a[maxn];
这样就能sort了