dew*_*rde 11 c++ sorting vector temporary
我有一个std :: vector,我需要通过选定的算法对某些操作进行排序,但是在剩下的时间内保持其原始状态(例如,在输入时排序的项目).
显然我可以使用std :: copy来创建一个临时向量并对其进行排序,但我想知道是否有更好的方法,可能是通过时间戳输入的项目.
干杯
mon*_*res 19
您可以创建一个std :: vector来保存第一个向量的所有索引.然后,您可以根据需要对索引向量进行排序.这应该是快速的,最重要的是,并不意味着你必须复制第一个矢量(这可能更昂贵!).
Man*_*uel 5
如果您不介意一点 Boost,您可以使用 MultiIndex 库。请参阅我的这个答案,您将在其中找到一些示例代码。
基本上,它允许您保留相同数据的多个“视图”,每个视图具有不同的顺序。在您的情况下,您将能够保留“序列”视图,其中数据按插入顺序(如向量)和“排序”视图,其中数据根据某种标准排序(如地图) 。
归档时间:
15 年,9 月 前
查看次数:
3561 次
最近记录: