如何从最低到最高基于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相关联。
答案 0 :(得分:2)
对于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; });
答案 1 :(得分:1)
由于您似乎没有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 );
}