只是要知道,我现在正在谈论 C++。
假设我有一个数组A = {4, 1, 5, 2, 3}并将其排序A_sorted = {1, 2, 3, 4, 5}。我想保留以下信息:现在元素在哪里e(来自数组 A)在排序数组 A_sorted 中?例如:A 中索引为 2 的元素 (5) 现在 A_sorted 中的索引为 4。
A = {4, 1, 5, 2, 3}
A_sorted = {1, 2, 3, 4, 5}
e
5
问题更像是:可以使用STL 来实现这一目标吗?
没有现成的功能可以实现此目的,但有一些解决方法。例如,您可以保留也包含原始位置的用户定义结构数组:
A = { {4,0}, {1,1}, {5,2}, {2,3}, {3,4}}
然后使用自定义比较器函数对其进行排序,该函数按值而不是原始索引排序。
A_sorted = {{1,1}, {2,3}, {3,4}, {4,0}, {5,2}}