This question already has answers here:
sort one array and other array following?
(3个答案)
5年前关闭。
我有两个大小相同的数组。并希望对一个数组进行正常排序,然后相应地对下一个数组元素进行排序。
假设我们有两个数组
首先,我想正常地对
这应该是最终结果
我应该怎么做?我应该使用这两个作为私有(private)成员的类对象然后继续吗?如果是这样,该怎么做?
(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 ),然后拆分为原始数组。
注意:如果每个数组中的值紧密耦合,则考虑将它们放在结构或类中,而不要使用两个(或多个)不同的数组。