[英]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.