Разве stl сортировка не требует строгого слабого порядка для работы?
От http://stdcxx.apache.org/doc/stdlibref/less-equal.html
-
Вы можете передать объект less_equal любому алгоритму, для которого требуется двоичная функция. Например, алгоритм sort() может принимать двоичную функцию в качестве альтернативного объекта сравнения для сортировки последовательности. less_equal будет использоваться в этом алгоритме следующим образом:
vector<int> vec1;
sort(vec1.begin(), vec1.end(),less_equal<int>());
-
Теперь я запутался, документация выше верна?
1 ответ
Решение
Вы правы, std::sort
требует от компаратора определения строгого слабого порядка.
Который означает, что std::less_equal
не должен использоваться с std::sort
, Тем не менее, он все еще может использоваться с рядом других стандартных алгоритмов, которые принимают двоичную функцию и не имеют строгого требования слабого упорядочения.