3 #ifndef OSL_MISC_REORDER_H
4 #define OSL_MISC_REORDER_H
14 template <
class RandomIterator,
class OrderArray>
15 static void reorder(RandomIterator first, RandomIterator last,
16 const OrderArray& indices)
18 const int size = last - first;
19 for (
int i=0; i<size-1; ++i)
21 int swap_target = indices[i];
22 while (swap_target < i)
23 swap_target = indices[swap_target];
24 std::swap(*(first+i), *(first+swap_target));