Выбор ответа Junior Алгоритмы STL и ranges спрашивают часто обновлено

lower_bound и upper_bound

Вопрос

Для отсортированного {1, 3, 3, 3, 7} чему равны lower_bound(3) - begin и upper_bound(3) - begin?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: 1 и 4. lowerbound возвращает первый элемент ≥ 3: индекс 1. upperbound первый элемент 3: индекс 4 (семёрка).

Варианты ответа

  1. 1 и 3
  2. 2 и 4
  3. 1 и 4правильный ответ
  4. 0 и 5

Разбор

lower_bound возвращает первый элемент ≥ 3: индекс 1. upper_bound первый элемент > 3: индекс 4 (семёрка). Разность 3 равна числу троек, так работает equal_range.

  • Индекс 3 указывает на последнюю тройку, а не на первый элемент больше.
  • Индекс 2 это вторая тройка.
  • 0 и 5 это границы всего массива.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.