liuweimingcprogram

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

有时候需要把

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了

分类:

技术点:

相关文章:

  • 2022-02-16
  • 2022-12-23
  • 2021-11-30
  • 2021-12-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-02-12
  • 2021-07-05
  • 2021-07-18
  • 2021-08-27
  • 2022-12-23
相关资源
相似解决方案