您是否有一些有效的例程来返回带有索引的数组,该索引用于数组中已排序的元素?我认为使用stl vector存在一些方便的方法。您是否已经在没有stl的情况下实现了高效的算法,或者您是否对伪代码或C ++代码有所了解?
感谢致敬
使用C ++ 11,以下方法应该可以正常工作:
template <typename T> std::vector<size_t> ordered(std::vector<T> const& values) { std::vector<size_t> indices(values.size()); std::iota(begin(indices), end(indices), static_cast<size_t>(0)); std::sort( begin(indices), end(indices), [&](size_t a, size_t b) { return values[a] < values[b]; } ); return indices; }