38 return (first.first < second.first);
48 void findorder_zero(
const std::vector<T> & v, std::vector<int> & order)
51 std::vector<std::pair<T, int> > p(v.size());
53 typename std::vector<T>::const_iterator vi;
54 typename std::vector<std::pair<T, int> >::iterator pi;
56 for (vi = v.begin(), pi = p.begin();
57 vi != v.end() && pi != p.end(); ++vi, ++pi)
59 *pi = std::pair<T, int>(*vi, position);
64 if (order.size() != v.size())
66 order.resize(v.size());
70 std::sort(p.begin(), p.end(), findranksCompare<double>);
73 std::vector<int>::iterator oi;
74 for (oi = order.begin(), pi = p.begin();
75 oi != order.end() && pi != p.end(); ++oi, ++pi)
89 void findorder(
const std::vector<T> & v, std::vector<int> & order)
91 findorder_zero<T>(v, order);
92 for (std::vector<int>::size_type i = 0; i < order.size(); i++)