#include <iostream>
#include <vector>
#include <algorithm>
#include <unordered_set>
#include <list>
template<typename T, typename U>
void sorty(T& a, U const x){
std::sort( a.begin(),a.end(), [&x](int i, int j)->bool { return x.at(i)>x.at(j);});
}
int main() {
std::vector<int>toOrder(10);
std::iota(toOrder.begin(),toOrder.end(),0);
std::vector<double> orderBy {0.2,9.8,4.0,0.01,15.1,3.3,9.01,9.11,100.1,2.03};
sorty(toOrder,orderBy);
//std::unordered_set<double> orderBy_s(orderBy.begin(),orderBy.end()); //no .at()
//std::list<int> toOrd_L(toOrder.begin(),toOrder.end()); //list
//sorty(toOrd_L,orderBy_s);
for(auto i : toOrder){
std::cout<<i <<"\t";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KI2luY2x1ZGUgPGxpc3Q+Cgp0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgp2b2lkIHNvcnR5KFQmIGEsIFUgY29uc3QgeCl7CgkJc3RkOjpzb3J0KCBhLmJlZ2luKCksYS5lbmQoKSwgWyZ4XShpbnQgaSwgaW50IGopLT5ib29sIHsgcmV0dXJuIHguYXQoaSk+eC5hdChqKTt9KTsKCX0KCmludCBtYWluKCkgewoKc3RkOjp2ZWN0b3I8aW50PnRvT3JkZXIoMTApOwpzdGQ6OmlvdGEodG9PcmRlci5iZWdpbigpLHRvT3JkZXIuZW5kKCksMCk7IApzdGQ6OnZlY3Rvcjxkb3VibGU+IG9yZGVyQnkgezAuMiw5LjgsNC4wLDAuMDEsMTUuMSwzLjMsOS4wMSw5LjExLDEwMC4xLDIuMDN9OwoKc29ydHkodG9PcmRlcixvcmRlckJ5KTsKCi8vc3RkOjp1bm9yZGVyZWRfc2V0PGRvdWJsZT4gb3JkZXJCeV9zKG9yZGVyQnkuYmVnaW4oKSxvcmRlckJ5LmVuZCgpKTsgLy9ubyAuYXQoKQovL3N0ZDo6bGlzdDxpbnQ+IHRvT3JkX0wodG9PcmRlci5iZWdpbigpLHRvT3JkZXIuZW5kKCkpOyAvL2xpc3QKLy9zb3J0eSh0b09yZF9MLG9yZGVyQnlfcyk7Cgpmb3IoYXV0byBpIDogdG9PcmRlcil7CiAgCXN0ZDo6Y291dDw8aSA8PCJcdCI7Cn0KCnJldHVybiAwOwkKfQ==