【发布时间】:2014-02-14 18:36:47
【问题描述】:
我有一组值V 可以通过它们的索引I 访问——即i->V[i]。
我需要根据V[i] 的值(例如从大到小)对这些进行迭代。
此外,我有原始指标I_1, I2,..., I_N 的子集,我需要以相同的顺序(从大到小)访问它们的相应值。
在这里使用的正确数据结构和过程是什么?我已经为此苦苦挣扎了一段时间,因此不胜感激。
请注意,值 (V[i]) 会不断更新,并且始终通过索引 i 进行访问。
如果我使用 set 来表示值,那么我需要删除更新的元素并将其插入回来,并提示放置它的位置(很可能它接近它在集合中的先前位置)。但是一个集合只会包含V,并且不允许我通过 i 访问元素。另一方面,使用Map 或Multimap 的元素按I 而不是V 排序。
似乎我需要使用指针和集合等的组合,但我无法弄清楚......
【问题讨论】:
标签: c++ sorting data-structures map set