Разве 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>());

Теперь я запутался, документация выше верна?

3

Решение

Вы правы, std::sort требует от компаратора определения строгого слабого порядка.

Который означает, что std::less_equal не должен использоваться с std::sort, Тем не менее, он все еще может использоваться с рядом других стандартных алгоритмов, которые принимают двоичную функцию и не имеют строгого требования слабого упорядочения.

7

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]