This question already has answers here:
sort one array and other array following?

(3个答案)


5年前关闭。




我有两个大小相同的数组。并希望对一个数组进行正常排序,然后相应地对下一个数组元素进行排序。
假设我们有两个数组
e[] = {4,2,3,7,6,8}
s[] = {2,0,4,3,7,9}

首先,我想正常地对e数组进行排序,然后根据s的更改后的元素位置更改e数组的元素位置。

这应该是最终结果
e[] = {2,3,4,6,7,8}
s[] = {0,4,2,7,3,9}

我应该怎么做?我应该使用这两个作为私有(private)成员的类对象然后继续吗?如果是这样,该怎么做?

最佳答案

创建一个vector对象的数组(或 std::pair ),其中first来自第一个数组,而second来自第二个数组。然后只需将 std::sort 与自定义比较器函数一起使用,该函数仅使用该对中的second进行比较。遍历排序后的数组(或 vector ),然后拆分为原始数组。

注意:如果每个数组中的值紧密耦合,则考虑将它们放在结构或类中,而不要使用两个(或多个)不同的数组。

10-06 05:35
查看更多