gpt4 book ai didi

c++ - 对二维数组进行排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:28:48 25 4
gpt4 key购买 nike

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

/////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 位于元素零,最小的位于元素末尾。但是在这样做的同时,我希望将与 numDetected 相同的元素中的 id 关联起来。因此,如果 numDetected[2] 是最大的,我希望 numDetected[2]id[2] 成为新元素中的第一个元素数组。

谁能帮帮我?

最佳答案

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);

关于c++ - 对二维数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15147401/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com