C++结构或数组排序

C++ struct or array sorting

本文关键字:数组排序 结构 C++      更新时间:2023-10-16

您好,我有结构排序功能,现在我只是想知道是否有更简单的方法可以做到这一点:

void Sorting(Sheeps v[],int all){
    for(int a =0; a < all; a++){
        for(int b = a+1; b < all; b++){
            if(v[b].dna_mach_rate > v[a].dna_mach_rate){
                v[4].dna_mach_rate = v[a].dna_mach_rate;
                v[a].dna_mach_rate = v[b].dna_mach_rate;
                v[b].dna_mach_rate = v[4].dna_mach_rate;
            }
        }
    }
    v[4].dna_mach_rate = 0;
}

所以这个函数只是运行槽结构并替换值,如果从大到小,但这是很多代码来做到这一点,所以我想知道是否有像"php"或"javascript"、"ushort"或类似的东西这样的函数,或者更好的排序数组或结构的方法这就是我在"JavaScript"中所做的:

arrayname.sort(function(a, b){return b.speed - a.speed}); 

在 PHP 中几乎相同,所以我想知道是否有类似甚至更好的方法来在 C++ 中对数组或结构进行排序

std::sort(v, v+all, [](Sheeps const& lhs, Sheeps const& rhs){
  return lhs.dna_mach_rate < rhs.dna_mach_rate;
});

在C++中排序,该将长度all的数组v并将它们按顺序排列,以便最低dna_mach_rate排在第一位。

自然,您需要先#include <algorithm>。 这也使用 C++11 功能,但此时 C++11 已有 5 年的历史。