![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
The MPL Reference Manual: Reversible AlgorithmBoost , ,
|
Front Page / Algorithms / Concepts / Reversible Algorithm |
А.Обратимый алгоритмявляется членом пары алгоритмов преобразования, которые итерируют свою входную последовательность (последовательности) в противоположных направлениях. Для каждого обратимого алгоритмахСуществуетаналогалгоритмreverse_x, который показывает точную семантикух, за исключением того, что элементы его аргумента(ов) входной последовательности обрабатываются в обратном порядке.
В следующей таблице и последующих спецификацияхxявляется токеном-заполнителем для фактическогоОбратимого алгоритма's имени,s1,s2, ...snявляютсяПередняя последовательностьs, ивявляетсяInserter.
Expression | Type | Complexity |
---|---|---|
x<s1,s2, ...sn, ...>::type | Последовательность | Не уточняется. |
x<s1,s2, ...sn, ...in>::type | Любой тип | Не уточняется. |
reverse_x<s1,s2, ...sn, ...>::type | Последовательность | Не уточняется. |
reverse_x<s1,s2, ...sn, ...in>::type | Любой тип | Не уточняется. |
typedef x<s1,s2,...sn,...>::type t;
Precondition: | s1 is an Extensible Sequence. |
---|---|
Semantics: | t is equivalent to x< s1,s2,...sn,... , back_inserter< clear<s1>::type > >::type еслиимеет_push_back<s1>::значение==истиннои reverse_x< s1,s2,...sn,... , front_inserter< clear<s1>::type > >::type otherwise. |
typedef x<s1,s2,...sn,...in>::type t;
Semantics: | t is the result of an x invocation with arguments s1,s2,... sn,...in. |
---|
typedef reverse_x<s1,s2,... sn,... >::type t;
Precondition: | s1 is an Extensible Sequence. |
---|---|
Semantics: | t is equivalent to x< s1,s2,...sn,... , front_inserter< clear<s1>::type > >::type еслиимеет_push_front<s1>::значение==истиннои reverse_x< s1,s2,...sn,... , back_inserter< clear<s1>::type > >::type otherwise. |
typedef reverse_x<s1,s2,...sn,... in>::type t;
Semantics: | t is the result of a reverse_x invocation with arguments s1,s2,...sn,...in. |
---|
typedef transform< range_c<int,0,10> , plus<_1,int_<7> > , back_inserter< vector0<> > >::type r1; typedef transform< r1, minus<_1,int_<2> > >::type r2; typedef reverse_transform< r2 , minus<_1,5> , front_inserter< vector0<> > >::type r3; BOOST_MPL_ASSERT(( equal<r1, range_c<int,7,17> > )); BOOST_MPL_ASSERT(( equal<r2, range_c<int,5,15> > )); BOOST_MPL_ASSERT(( equal<r3, range_c<int,0,10> > ));
Статья The MPL Reference Manual: Reversible Algorithm раздела может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: ::
реклама |