我有一个Moves矢量和一个得分矢量。我想对移动向量(基于另一个向量)进行排序,而不创建中间容器。 (并且最好不要写我自己的那种,已经有这么多好处)。我不希望中间产品的原因是性能原因,这部分是目前的主要瓶颈。有人知道一个整洁的快速黑客,实现这一目标吗?注意:将得分作为Move的一部分不是一个好主意,移动增长到很多,并且我有很多缓存未命中的方式。此外,大多数移动载体不需要排序。
struct Move { unsigned char f,t,p,m; };
std::vector<Move> mvlst;
std::vector<int> scores;
根据mvlst
scores
更新:我找到this,它接缝起作用。