sort函数MATLAB sort函数cmp

咱这电脑里头MATLAB和C++的项目都有点年头了,以前在写代码的时候,就特别能体会到这两者在处理排序时的小差别。

先说MATLAB吧,那年我在大学里做毕业设计,那时候用的是MATLAB来做数据处理和图像处理。
记得有一次,我们要对一个矩阵按照第二列进行排序,用了这个sort函数,写起来挺简单,就那么一行代码,[sortedArray, index] = sort(A, 2 )。
然后,如果想要降序排序,就直接在后面加个参数,sort(A, 2 , 'descend'),就这么简单。

不过,MATLAB的sort函数有点小遗憾,它不支持那种自定义比较函数(cmp参数)的功能。
我在用MATLAB的时候,如果真的需要复杂排序规则,就只能另想办法了,比如先转换数据类型或者手动写一个排序算法。

再说说C++吧,当时用C++做项目,尤其是在排序一些自定义数据结构时,那 cmp 参数可真是神器。
我记得有一次,我们有个项目要排序一些复杂的结构体,里面有很多字段,需要按照某个特定的字段排序。
那时候就写了个比较函数,比如 bool cmp(int a, int b) { return a > b; },然后在 sort 函数里传进去,sort(myArray.begin(), myArray.end(), cmp);,这样一来,复杂的排序需求就解决了。

用C++的时候,cmp 参数真是方便,尤其是在处理结构体、类这种自定义数据类型的时候,简直就像定制的西装,完全符合需求。

总结一下,MATLAB的sort函数简洁明了,但灵活性有限;C++的sort函数通过cmp参数增加了很大的灵活性,特别是在处理自定义数据结构时。
这俩函数各有千秋,得看具体的需求来选。
说起来,这块儿MATLAB和C++我倒是都碰过,不过具体到cmp参数在C++中的细节,我也得翻翻文档才能确保说得准确。
😅

c++排序动态数组运行后排序功能未生效,求教原因

这就是坑。
别用冒泡排序。
别这么干。
直接用快速排序。