могу ли я использовать equal_range для получения диапазона значений или конца контейнера?
Я знаю, что equal_range(k) дает мне диапазон значений:
начиная с k или элемента больше k или end и
заканчивая элементом больше k или end.
Я хочу изменить это поведение, чтобы дать мне только диапазон значений:
начиная с k или
заканчивая элементом, большим, чем k, или концом
это необходимо для достижения результата: если диапазон отсутствует в контейнере, возвращайте итераторы в конец, чтобы я мог сравнить их с концом контейнера.
как я могу это сделать???
я пробовал использовать функцию диапазона?
но когда я передаю make_tuple, формирующий составной ключ, в lower_bound, это дает мне огромные ошибки, так что я сдаюсь
1 ответ
Я обнаружил, что если я использую сравнение между двумя итераторами, полученными в результате equal_range, то они равны, если значение, используемое для equal_range, отсутствует в контейнере, поэтому lower_bound of value является значением больше, чем оно, а upper_bound также является значением больше, чем это так значения нет.
и если значение присутствует, то 2 итератора не равны.
и я не должен использовать конечный итератор.