【发布时间】:2020-05-20 07:09:53
【问题描述】:
假设我想根据向量 A 以升序对向量 A、B 和 C 进行排序,使得向量 B 和 C 会相应变化。如果向量A包含两个或多个相同的元素,则优先考虑对应向量C上较大的值。举个例子。
A=25,10,10,5,5
B=12,14,3,45,6
C=123,23,12,45,76
排序后是这样的
A=5,5,10,10,15
B=6,45,14,3,12
C=76,45,23,12,123
谁能告诉我如何为此编写一个 c++ 程序?可以使用哪个库?
【问题讨论】:
-
A=25,10,10,5,5-- 如果10或5不在连续位置怎么办?您如何知道排序标准中使用了哪个10或哪个5? -
一般来说,当我看到关于排序一个容器的问题,以及根据该排序更改第二个(或第三个!)容器的排序时,通常表明您需要一个复杂的容器数据类型,例如
std::vector<my_struct>或std::vector<std::tuple<int, int, int>> -
@PaulMcKenzie 然后我们可以检查 C 的相应值。这意味着向量 A 的第二个元素链接到向量 B 和 C 的第二个元素。类似地,向量 B 的第三个元素与向量 B 和 C 的第三个元素相关
-
谁能帮助我理解我的例子并用c++程序证明它?
-
哪一部分你不明白?制作自定义数据类型,或根据您规定的规则对该数据类型进行排序?我提出的方法需要一个结构和一个自定义比较操作。
标签: c++ algorithm sorting vector