2017-08-17 60 views
1

在上一個問題中,答案顯示瞭如何使用lambdas來跟蹤數組中的原始位置並對索引進行排序。使用C++排序索引進行排序

C++ sorting and keeping track of indexes

我想對列表進行排序,但存儲原始指標。一種方法是對索引進行排序,然後對列表重新排序。這需要兩次通過,第二次是O(n),所以也許這不是太糟糕。但我想知道是否可以同時重新排列數值並交換列表。問題是用於比較的lambda只需要兩個參數。

什麼是寫的最好的方式:

template<typename T> 
sortWithIndexes(v, indexes, n) { 

} 

使V被重新排序和索引包含V的每個元素的原始位置?

+0

爲什麼不排序索引? – LogicStuff

+5

你可以排序一個'對' – user463035818

+1

@Logicstuff列表我想要非常頻繁地跳進數組,併線性掃描數據。這是非常值得在太空中連續進行的。 – Dov

回答

0

您可以使用相同的std::multimap。它會自動分類w.r.t鍵。