C++中如何用std::sort对二维char数组排序?
问题描述: 定义一个 char str[10005][15],要对10000个char数组 风格的字符串排序.
典型错误做法:
bool cmp(
char a[],
char b[]){
int temp = strcmp(a,b);
return temp<
0;
}
......
sort(
str,
str+n, cmp);
解决办法有: 1.用qsort 2.改用string 3.把二维数组 改成struct的一维数组
1.用qsort:
int cmp(
const void *a,
const void *b){
char *s1 = (
char *)a;
char *s2 = (
char *)b;
return strcmp(s1,s2);
}
......
qsort(str, num,
52, cmp);
原文链接
2.改用string
bool cmp(
string a,
string b){
return a
<b;
}
......
sort(v
.begin(), v
.end(), cmp);
3.把二维数组 改成struct的一维数组,
见机试指南
转载请注明原文地址: https://ju.6miu.com/read-2827.html