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/

相关文章:

arrays - float 到字符数组

java - ByteBuffer 到 int 数组(每个字节)

mysql - 按日期排序记录,然后按项目 ID 排序

c - 试图对结构中的数据进行排序,它排序正确但最后一行是错误的

C++网络和锁定问题

c++ - CMake链接阶段问题

非公共(public)继承中的 C++ 基类方法访问

c++ - 在《Effective C++》书中的这个示例中,返回对象指针的函数的实现细节是什么?

javascript - 计算数组中的组合产品

string - 返回一个在两个给定字符串之间排序的新字符串