原来的代码直接利用小于号排序 目前支持传入lambda表达式
template <class T>
std::vector<size_t> sort_indexes(const std::vector< T> & v, std::function<bool(T, T)> less_than_function = [](T a, T b) { return a < b; }) {
std::vector< size_t> idx(v.size());
for (size_t i = 0; i != idx.size(); ++i)
idx[i] = i;
std::sort(idx.begin(), idx.end(),[&v](size_t i1, size_t i2) {return less_than_function(v[i1] , v[i2]); });
return idx;
}