簡體   English   中英

根據gc值對整個struct數組進行排序

[英]Sort entire struct array based on gc value

我如何根據從最低到最高的double gc對數組中的整個結構及其所有元素進行排序?

我不知道從哪里開始,並且已經掙扎了好幾個小時。

struct DNA
{
    vector <string>header;
    string DNAstrand;
    double gc;
    int valid; // 0 not valid | 1 valid
};
struct World
{
    //  int     numCountries;
    DNA dnas[MAX_DNA_SIZE];
} myWorld;

基本上我的目標是使用gc從最低到最高來安排所有元素同步,所以如果我拉myWorld.dnas[2].valid或者它會在排序之后與它的gc相關聯。

使用C ++ 11和std::sort非常容易:

std::sort(std::begin(myWorld.dnas), std::end(myWorld.dnas), [](const DNA& dna1, const DNA& dna2) { return dna1.gc < dna2.gc; });

由於您似乎沒有C ++ 11,您可以嘗試以下方法:

#include <algorithm>

int main()
{
    struct
    {
        bool operator()( DNA const& a, DNA const& b )
        {
            return a.gc < b.gc;
        }
    } dna_comparer;

    std::sort( myWorld.dnas, myWorld.dnas + MAX_DNA_SIZE, dna_comparer );
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM