2

我正在尝试对两组数据进行排序,无论是二维数组还是并行数组,无论哪种方式都没有区别,但我似乎无法弄清楚。这是两个数组:

/////way one///

int id[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int numDetected[10] = {40, 21, 2, 19, 45, 32,43, 90, 100, 8};

或者

int 2dArray[2][10];

没有区别,但我似乎无法弄清楚。

我想按数量将数组排序为一个新数组(无论是二维数组还是平行数组)numDetected。所以最大numDetected的在元素零处,最小的在最后。但是在这样做的同时,我想将与 id 关联的 id 保留在与numDetected. 所以如果numDetected[2]是最大的,我想numDetected[2]成为id[2]新数组中的第一个元素。

谁能帮我吗?

4

1 回答 1

1
struct values
{
    int id;
    int detected;
} data[10] = ...;

// intentionally reversed to cause sort in descending order
bool operator<(const values& left, const values& right) { return left.detected > right.deteted; }

values *begin = data, *end = (&data)[1];
std::sort(begin, end);
于 2013-02-28T23:10:08.787 回答