您的位置:首页 > 其它

如何对二维字符数组进行排序

2016-10-30 09:50 183 查看
有时候需要把

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了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: