C++:排序函数
Posted
技术标签:
【中文标题】C++:排序函数【英文标题】:C++: Sort functions 【发布时间】:2017-09-15 09:20:21 【问题描述】:我是 C++ 初学者。我想了解这个function
是如何对string
进行排序的?
int SA_cmp(const void *a, const void *b) return strcmp(S + *(int*)a, S + *(int*)b);
任何指针都会有帮助吗?
【问题讨论】:
一个忠告:放弃上面的,去std::string和std::sort。 什么是S
?无论您使用什么学习材料:现在就把它扔掉。改为获取book。那是糟糕的代码,不应该向初学者展示。
【参考方案1】:
这是一个 C 比较函数,而不是 (C++) 排序函数。排序函数(可能是qsort,给定const void*
参数)会多次调用它(将指针传递给包含许多以null 结尾的字符串的缓冲区的明显索引),以便对这些索引进行排序(以及它们所指示的子字符串)。
【讨论】:
【参考方案2】:这不会对字符串进行排序。
这是一种帮助比较字符串的方法,被排序方法用作辅助方法。
如果字符串a
按字典顺序小于字符串b
,它将返回一个负数,如果它们相等则返回0,或者如果b
大于a
,则返回一个正数。
【讨论】:
感谢您的编辑。最初的答案让我感到困惑,让我陷入了深深的自我怀疑的深渊:D以上是关于C++:排序函数的主要内容,如果未能解决你的问题,请参考以下文章