Я плохо понимаю алгоритм std::is_sorted
и его поведение по умолчанию. Если мы посмотрим на cppreference, в нем говорится, что по умолчанию std::is_sorted
использует оператор <
. Вместо этого я считаю, что использование <=
было бы естественным. Но моя проблема в том, что для следующего списка чисел:
1 2 3 3 4 5
он вернет true
, даже если 3 < 3
должен быть false
. Как это возможно?
EDIT: он кажется хуже, чем я думал, потому что передача std::less_equal<int>
вернет false в этом случае... Какое условие применяется при передаче функции компаратора?