如何将一个数组的元素与另一个数组的元素进行对应排序
How to sort the elements of an array corresponding to elements of other array?
我有两个数组,其中第一个数组的第I个元素对应于另一个数组的第I个元素。也就是说,如果我将第一个数组的第I个元素移动到第j个位置,那么我必须对第二个数组做同样的操作。
我知道我可以使用pair<int, int>
,然后使用sort
函数,但这不是一个选项。
sort
函数的第三个参数可以用于此目的:类似于:
int a[4] = {2,3,1,0}, b[4] = {10,9,6,4}; //2 corresponds to 10, 3 corrspond to 9 and so on...
sort(a,a+10); // a = {0,1,2,3}
sort(b, b+10, compare); //->should change b to {4,6,10,9}
可以这样做吗?如果是,比较函数是什么?
是的,可以这样做。比较器需要是一个对象,它包含从b中的元素到a中相应元素的映射,您可以使用它来确定顺序。
您将不得不实现比较,以便它在b中给定两个元素,比较a中相应的元素。您可以通过使用int index = element - b;
来找出索引是什么,其中元素是比较函数中的一个项目。
我强烈建议使用pair<>
或struct/class
同时保存您的a, b值-也节省了时间。
相关文章:
- Mongodb c++驱动程序:如何查询元素的数组
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 使用strcpy将char数组的元素复制到另一个数组
- 如何将元素添加到数组的线程安全函数?
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- 输出没有重复元素的动态数组(收缩数组)C++
- 数组中最大的非重复元素
- 数组元素打印的递归方法
- 对字符数组中的元素执行逐位操作
- 缓存std::数组的选定元素,并在c++中自动保持其一致性
- 如何计算数组中元素的位数?(不是数组的长度),并计算其数字的总和
- 通过交换元素使数组相同
- 按平均值替换数组中的元素
- 打印矢量数组中的所有元素
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何为 c++ 的不同变量类型的结构元素创建动态数组?
- 如何将元素从向量转移到新数组?
- 如何在向量数组中插入元素?
- 为什么 2 个相同数组的元素彼此相等
- C++ 中的二维整数数组,每行中的元素数量不均匀