Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения

The MPL Reference Manual: reverse_unique

Boost , ,

Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Front Page / Algorithms / Transformation Algorithms / reverse_unique

reverse_unique

Synopsis

template<
      typename Seq
    , typename Pred
    , typename In = unspecified
    >
struct reverse_unique
{
    typedef unspecified type;
};

Description

Возвращает последовательность начальных элементов каждого поддиапазона обратной исходной последовательностиСек, элементы которой все одинаковы.

[править]Примечание:Данная формулировка применяется к неинсертерной версии алгоритма. См. подразделСемантика экспрессиидля точного описания деталей алгоритма во всех случаях —

Parameters

Parameter Requirement Description
Последовательность Последовательность Оригинальная последовательность.
Пред БинарноеЛамбда-выражение Отношение эквивалентности.
В Вставить Вставка.

Expression semantics

Семантика выражения определяется только там, где она отличается от семантики выражения или не определена в. Обратимый алгоритм.

Для любойпередовой последовательностиs, двоичнойлямбда-выраженияпред, ивставкав:

typedef reverse_unique<s,pred,in>::type r;
Return type:

A type.

Semantics:

If size<s>::value <= 1, then equivalent to

typedef reverse_copy<s,in>::type r;

иным эквивалентом

typedef lambda<pred>::type p;
typedef lambda<in::operation>::type in_op;
typedef apply_wrap2<
      in_op
    , in::state
    , front<types>::type
    >::type in_state;
typedef reverse_fold<
      s
    , pair< in_state, front<s>::type >
    , eval_if<
          apply_wrap2<p, second<_1>, _2>
        , identity< first<_1> >
        , apply_wrap2<in_op, first<_1>, _2>
        >
    >::type::first r;

Complexity

Линейный. Выполняет ровноразмер::value-1приложенияпред, и самое большееразмер::valueвставки.

Example

typedef vector<int,float,float,char,int,int,int,double> types;
typedef vector<double,int,char,float,int> expected;
typedef reverse_unique< types, is_same<_1,_2> >::type result;
BOOST_MPL_ASSERT(( equal< result,expected > ));

Статья The MPL Reference Manual: reverse_unique раздела может быть полезна для разработчиков на c++ и boost.




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:12:11/0.0065228939056396/0