【发布时间】:2018-12-23 19:59:19
【问题描述】:
我有一个标准向量,例如包含以下元素
[-6, -7, 1, 2]
我需要将这些元素映射到 1 到 4 的范围内。即我需要向量是这样的
[2, 1, 3, 4]
请注意:第一个向量 (-7) 中的最小值映射到第二个向量 (1) 中的最小值。如何使用 STL 实现这一目标?
【问题讨论】:
-
获取范围很容易(
1到my_vector.size())。至于定位,可以通过将第二个向量中的值从小到大排列,然后使用第一个向量中的值进行排序来解决。 -
@Someprogrammerdude 是的,创建一个范围并对其进行排序是一种选择(参见例如stackoverflow.com/a/37369858/3182664)。其实这里的具体情况基本上可以认为是寻找一个排序排列(或者它的逆)。