Я знаю, что стандартная библиотека имеет std::reverse_iterator<...>
, которая, учитывая тип итератора, может быть использована для получения ее обратного (типа).Имеет ли стандартная библиотека механизм разворота компаратора?
Имеет ли он аналогичный механизм для реверсирования компараторов, используемых для сортировки/заказа? Что-то, что принимает тип компаратора и производит компаратор, соответствующий обратному порядку (при условии, что порядок обратим)? например с std::reverse_comparator<std::greater<int>>
эквивалентно std::less<int>
?
'станд :: reverse_comparator <станд :: больше>' 'должны быть станд :: less_equal ', не так ли? –
@EdgarRokyan: Нет, я так не думаю. Иначе почему вместо std :: less_equal 'std :: less' вместо исходного? – einpoklum
@einpoklum Я согласен с Эдгаром. Если целью вашего разворачивания компаратора является полная инверсия, т. Е. Все, что было истинно, теперь ложно, а все, что было ложным, теперь истинно, то Эдгар точно прав. 'std :: greater' * строго * больше. Обратное к этому было бы * не * строго-большим, что все равно меньше или равно. – WhozCraig