Почему std::set::lower_bound(x) (фактически) определяется как наименьшее число >= x, а не как наибольшее число <= x?

Возможно, я неправильно понимаю техническое определение нижней границы, но я ожидал бы, если бы у меня был набор a = { 0, 3, 4 }и вычислил a.lower_bound(2), чтобы результат был 0. т.е. Я ожидаю, что std::set::lower_boundбудет близок к математической концепции infimum

. И все же стандартная библиотека определяет его как наибольшее число не менее (эффективно >=) х.

В чем причина этого?

11
задан James McNellis 27 June 2012 в 16:45
поделиться