【问题标题】:C++: Sort functionsC++:排序函数
【发布时间】: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。那是糟糕的代码,不应该向初学者展示。

标签: c++ string sorting


【解决方案1】:

这是一个 C 比较函数,而不是 (C++) 排序函数。排序函数(可能是qsort,给定const void* 参数)会多次调用它(将指针传递给包含许多以null 结尾的字符串的缓冲区的明显索引),以便对这些索引进行排序(以及它们所指示的子字符串)。

【讨论】:

    【解决方案2】:

    这不会对字符串进行排序。

    这是一种帮助比较字符串的方法,被排序方法用作辅助方法。

    如果字符串a 按字典顺序小于字符串b,它将返回一个负数,如果它们相等则返回0,或者如果b 大于a,则返回一个正数。

    【讨论】:

    • 感谢您的编辑。最初的答案让我感到困惑,让我陷入了深深的自我怀疑的深渊:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多