我是C ++初学者。我想了解这个string
如何对int SA_cmp(const void *a, const void *b) { return strcmp(S + *(int*)a, S + *(int*)b); }
进行排序?
{{1}}
任何指针都会有帮助吗?
答案 0 :(得分:2)
这是一个 C 比较函数,而不是(C ++)排序函数。排序函数(可能是qsort,给定const void*
参数)会多次调用它(将指针传递给显然是指向包含多个以空字符结尾的字符串的缓冲区的指针)对这些索引进行排序(以及间接地,它们指示的子串)。
答案 1 :(得分:1)
这将不对字符串进行排序。
这是一种有助于比较字符串的方法,并被sorthing方法用作辅助方法。
如果字符串a
在字典上小于字符串b
,则返回负数,如果它们相等,则返回0;如果b
大于{{1},则返回正数}。