Есть ли эквивалентный std :: algorithm, похожий на std :: map :: lower_bound для std :: tr1 :: unordered_map?Есть ли эквивалентный std :: algorithm, похожий на std :: map :: lower_bound для std :: tr1 :: unordered_map?
ответ
Нет, их нет, поскольку std::unordered_map
не является заказным контейнером.
std::lower_bound
существует, но она работает только с упорядоченными контейнеров:
Требуется: Элементы
e
из[first,last)
должны быть разделены по отношению к выражениюe < value
илиcomp(e, value)
.
C++ 11, [lower.bound] (§25.4.3.1)
'std :: unordered_map' удовлетворяет' ForwardIterator'. 'std :: lower_bound' требует, чтобы его итератор удовлетворял' ForwardIterator'. Что мне не хватает? – Rakete1111
@ Rakete1111: «Диапазон' [первый, последний] 'должен быть, по крайней мере, частично упорядочен, т.е. разделен по отношению к элементу выражения'
@MatteoItalia, спасибо за редактирование - меня не было. – SergeyA
Что толку lower_bound, если последовательность неупорядоченный? – cpplearner
В основном я хочу использовать уже существующий контейнер в своем коде, который является std :: tr1 :: unordered_map, не копируя его на std :: map. – Sitesh
На более высоком уровне, чего вы пытаетесь достичь? – Chad