3 ms·
Don't do this. It has overflow issues.
by alayne 12y ago
Don't do this. It has overflow issues.
- pavanky 12y agoYou are right. He was really careful in picking double instead of int for this example.
- ridiculous_fish 12y agoActually I would say it was rather careless, because it mishandles NaNs: vector<double> v = {0, nan(""), 1}; sort(v.begin(), v.end(), [](double x, double y) { return x>y; }); In my test this leaves the vector unchanged, which is definitely not in decreasing order.
- lomnakkus 12y ago">" does not form a total order on doubles if you include NaN, so that's not really suprising. That is, you're providing a comparison function which is invalid, you should (at best) expect invalid results.