如何对二维字符数组进行排序
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了
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了
相关文章推荐
- js如何对数组进行排序
- 以行为单位对字符串变量下标为奇数位置上的字符按其ASCii值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
- Linux如何使用awk文本处理工具进行数组排序
- C++中利用数组对字符进行除重和排序
- 一个字符数组,里面的字符可能是a-z、A-Z、0-9.现在要求对数组进行排序,要求所有小写字符放在最前面,所有大写字符放在中间,所有数字放在最后,而且各部分内部分别有序(创新工场)
- 对字符串进行快速排序(即字符数组排序)
- 对二维字符数组排序(2sort和1qsort)
- 对二维字符数组排序(2sort和1qsort)
- PHP 数组的各种排序 原:如何使用强大的PHP函数对数组进行排序
- 把一个二维实型数组a按照第0列的元素进行排序(由小到大排序,用气泡法)
- 如何对数组中的字典进行排序
- 对二维字符数组排序(2SORT和1QSORT)
- 前端笔试题【1】--从字符串的第二个字符开始对数组进行排序
- 第十三周项目四 数组的排序(对字符数组进行冒泡排序)
- .NET :如何对数组进行排序
- sort对二维字符数组排序
- .NET :如何对数组进行排序
- 对二维字符数组排序(2sort和1qsort)
- iOS如何对包含date的数组进行排序
- 使用qsort对二维字符数组排序疑难问题调试及解决过程