![]() |
![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: upper_boundBoost , ,
|
||||||||||||||||||||||||
| Front Page / Algorithms / Querying Algorithms / upper_bound |
template<
typename Sequence
, typename T
, typename Pred = less<_1,_2>
>
struct upper_bound
{
typedef unspecified type;
};
Возвращает последнюю позицию в отсортированномПоследовательность, гдеTможет быть вставлен без нарушения порядка.
#include <boost/mpl/upper_bound.hpp>
| Parameter | Requirement | Description |
|---|---|---|
| Последовательность | Последовательность | Сортированная последовательность для поиска. |
| Т | Любой тип | Тип для поиска позиции. |
| Пред | БинарноеЛамбда-выражение | Критерии поиска. |
Для любой сортированнойпередней последовательностиs, двоичнойлямбда-выраженияпреди произвольного типаx:
typedef upper_bound< s,x,pred >::type i;
| Return type: | |
|---|---|
| Semantics: | i is the furthermost iterator in [begin<s>::type, end<s>::type) such that, for every iterator j in [begin<s>::type, i), apply< pred, x, deref<j>::type >::type::value == false |
Количество сравнений логарифмическое: самое большее log2размер:: значение+ 1.Еслиsявляетсяпоследовательностью случайного доступа, то число шагов в диапазоне также логарифмическое; в противном случае число шагов пропорциональноразмер:: значение.
typedef vector_c<int,1,2,3,3,3,5,8> numbers; typedef upper_bound< numbers, int_<3> >::type iter; BOOST_MPL_ASSERT_RELATION( (distance< begin<numbers>::type,iter >::value), ==, 5 ); BOOST_MPL_ASSERT_RELATION( deref<iter>::type::value, ==, 5 );
Статья The MPL Reference Manual: upper_bound раздела может быть полезна для разработчиков на c++ и boost.
:: Главная :: ::
реклама |