簡體   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