【发布时间】:2017-08-11 05:56:09
【问题描述】:
我想使用类双排序(?)编写代码。
例如,类有三个数据成员,即num、error和data。
class Test
{
public:
int num;
float error;
vector<float> data;
};
现在,我做:
vector<Test> TestList;
而且,那些有:
TestList[0] : num = 1, error = 0.001, data0
TestList[1] : num = 1, error = 0.01, data1
TestList[2] : num = 2, error = 0.01, data2
TestList[3] : num = 3, error = 0.001, data3
TestList[4] : num = 3, error = 0.01, data4
然后,我想用num(更高优先级)和error对它们进行排序。
预期的结果是TestList 按以下顺序排列:
测试[4] : num = 3, error = 0.001, data4
Test[3] : num = 3, error = 0.01, data3
Test[2] : num = 2, error = 0.01, data2
Test[0] : num = 1, error = 0.001, data0
Test[1] : num = 1, error = 0.01, data1
我该怎么做?另外,这个算法怎么调用?
【问题讨论】:
-
查找记录为“稳定”排序的排序,然后首先按
error排序,然后按num排序。例如mergesort 是一种稳定的排序算法。