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

merge

Boost , Chapter 1. Range 2.0 , Mutating algorithms

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext
Prototype

template<
    class SinglePassRange1,
    class SinglePassRange2,
    class OutputIterator
    >
OutputIterator merge(const SinglePassRange1& rng1,
                     const SinglePassRange2& rng2,
                     OutputIterator          out);
template<
    class SinglePassRange1,
    class SinglePassRange2,
    class OutputIterator,
    class BinaryPredicate
    >
OutputIterator merge(const SinglePassRange1& rng1,
                     const SinglePassRange2& rng2,
                     OutputIterator          out,
                     BinaryPredicate         pred);

Description

<merge>объединяет два отсортированных диапазона<rng1>и<rng2>в один отсортированный диапазон посредством копирования элементов. (0) является стабильным. Возвратная стоимость<out +distance(rng1)+distance(rng2)>.

Две версии<merge>отличаются тем, как они сравнивают элементы.

Версия без предиката использует<operator<()>для типа значения диапазона. Версия предиката использует предикат вместо<operator<()>.

Definition

Defined in the header file boost/range/algorithm/merge.hpp

Requirements

For the non-predicate version:

  • <SinglePassRange1>является модельюSingle Pass RangeКонцепт.
  • <SinglePassRange2>является образцом. Единый проходной диапазонКонцепт.
  • <range_value<SinglePassRange1>::type>то же, что<range_value<SinglePassRange2>::type>.
  • <range_value<SinglePassRange1>::type>является образцом<LessThanComparableConcept>.
  • Порядок на объектах<range_value<SinglePassRange1>::type>—строгий слабый порядок, как определено в<LessThanComparableConcept>требованиях.
  • <range_value<SinglePassRange1>::type>конвертируется в тип в<OutputIterator>наборе типов значений.

For the predicate version:

  • <SinglePassRange1>является модельюSingle Pass RangeКонцепт.
  • <SinglePassRange2>является образцом. Единый проходной диапазонКонцепт.
  • <range_value<SinglePassRange1>::type>то же, что<range_value<SinglePassRange2>::type>.
  • <BinaryPredicate>является образцом<StrictWeakOrderingConcept>.
  • Тип значения<SinglePassRange1>конвертируется в оба типа аргументов<BinaryPredicate>.
  • <range_value<SinglePassRange1>::type>конвертируется в тип в<OutputIterator>наборе типов значений.
Precondition:
For the non-predicate version:
  • Все они<rng1>находятся в постоянном движении. То есть для каждого соседнего элемента пара<[x,y]>из<rng1>,<y< x== false>.
  • Все<rng2>в порядке. То есть для каждого соседнего элемента пара<[x,y]>из<rng2>,<y< x== false>.
  • При этом они<rng1>и<[out,out +distance(rng1)+distance(rng2))>не пересекаются.
  • При этом они не имеют значения<rng2>и<[out,out +distance(rng1)+distance(rng2))>.
  • <[out,out +distance(rng1)+distance(rng2))>Это действительное число.
For the predicate version:
  • При этом<rng1>находится в постоянном движении. Для каждого из них<[x,y]>,<rng1>,<pred(y,x)==false>.
  • Все<rng2>в порядке. То есть для каждого соседнего элемента пара<[x,y]>, из<rng2>,<pred(y,x)==false>.
  • При этом они<rng1>и<[out,out +distance(rng1)+distance(rng2))>не пересекаются.
  • При этом они не имеют значения<rng2>и<[out,out +distance(rng1)+distance(rng2))>.
  • <[out,out +distance(rng1)+distance(rng2))>Это действительное число.
Complexity

Линейный. Не существует сравнений, если оба<rng1>и<rng2>пусты, в противном случае самое большее<distance(rng1)+distance(rng2)-1>сравнения.


PrevUpHomeNext

Статья merge раздела Chapter 1. Range 2.0 Mutating algorithms может быть полезна для разработчиков на c++ и boost.




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



:: Главная :: Mutating algorithms ::


реклама


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

Время компиляции файла: 2024-08-30 11:47:00
2025-05-19 22:28:48/0.0090701580047607/1