c++ - 如何在 C++ 中对一个数组进行排序并获得相应的第二个数组?

标签 c++ arrays sorting

<分区>

我有两个相同大小的数组。并希望对数组中的一个进行正常排序,然后相应地对下一个数组元素进行排序。 假设我们有两个数组

e[] = {4,2,3,7,6,8}
s[] = {2,0,4,3,7,9}

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

这应该是最终结果

e[] = {2,3,4,6,7,8}
s[] = {0,4,2,7,3,9}

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

最佳答案

创建 vector 的单个数组(或 std::pair )对象,其中 first 来自第一个数组,second 来自第二个数组。然后只需使用 std::sort具有自定义比较器功能,该功能仅使用对中的 second 进行比较。迭代排序后的数组(或 vector )并拆分为原始数组。

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

关于c++ - 如何在 C++ 中对一个数组进行排序并获得相应的第二个数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33406432/

相关文章:

c++ - 为什么 Visual Studio 2010 没有 "unpack"系统变量?

c++ - 向数组元素插入一个新值并移动其余元素

arrays - 当标签中的字符串等于 JSON 数组中的数据时,如何循环 JSON 中的数据

按距离以外的其他方式对 MongoDB GeoNear 结果进行排序?

c++ - 当基类提供时,派生类是否需要实现移动语义?

C++ 无法创建目标文件,因为需要资源

c++ - QOpenGLFunctions 的正确用法

Javascript:在同一命名空间内的数组中引用变量

algorithm - 插入排序与插入排序与二进制插入排序

c - 如何顺序修改数组中的值