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

The MPL Reference Manual: sort

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 / sort

sort

Synopsis

template<
      typename Seq
    , typename Pred = less<_1,_2>
    , typename In = unspecified
    >
struct sort
{
    typedef unspecified type;
};

Description

Возвращает новую последовательность всех элементов в диапазоне::type,конец::типСортировка по упорядоченному отношениюПредд.

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

Parameters

Parameter Requirement Description
Сек Последовательность Оригинальная последовательность.
Пред Бинарное выражениеLambda Expression Упорядоченное отношение.
В Вставить Вставка.

Expression semantics

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

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

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

A type.

Semantics:

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

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

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

typedef back_inserter< vector<> > aux_in;
typedef lambda<pred>::type p;
typedef begin<s>::type pivot;
typedef partition<
      iterator_range< next<pivot>::type, end<s>::type >
    , apply_wrap2<p,_1,deref<pivot>::type>
    , aux_in
    , aux_in
    >::type partitioned;
typedef sort<partitioned::first,p,aux_in >::type part1;
typedef sort<partitioned::second,p,aux_in >::type part2;
typedef copy<
      joint_view<
          joint_view<part1,single_view< deref<pivot>::type > >
        , part2
        >
    , in
    >::type r;

Complexity

СреднийO(n log(n)), гдеn==размер:: значение, квадратичное в худшем случае.

Example

typedef vector_c<int,3,4,0,-5,8,-1,7> numbers;
typedef vector_c<int,-5,-1,0,3,4,7,8> expected;
typedef sort<numbers>::type result;
BOOST_MPL_ASSERT(( equal< result, expected, equal_to<_,_> > ));

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




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



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


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-20 09:08:59/0.0059809684753418/0