繁体   English   中英

C ++结构或数组排序

[英]C++ struct or array sorting

您好我有结构排序功能,现在我只是想知道有更简单的方法这样做:

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年的历史。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM