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

inplace_merge

Boost , Chapter 1. Range 2.0 , Mutating algorithms

Boost C++ LibrariesHomeLibrariesPeopleFAQMore

PrevUpHomeNext
Prototype

template<class BidirectionalRange>
BidirectionalRange&
inplace_merge( BidirectionalRange& rng,
               typename range_iterator<BidirectionalRange>::type middle );
template<class BidirectionalRange>
const BidirectionalRange&
inplace_merge( const BidirectionalRange& rng,
               typename range_iterator<const BidirectionalRange>::type middle );
template<class BidirectionalRange, class BinaryPredicate>
BidirectionalRange&
inplace_merge( BidirectionalRange& rng,
               typename range_iterator<BidirectionalRange>::type middle,
               BinaryPredicate pred );
template<class BidirectionalRange, class BinaryPredicate>
const BidirectionalRange&
inplace_merge( const BidirectionalRange& rng,
               typename range_iterator<const BidirectionalRange>::type middle,
               BinaryPredicate pred );

Description

inplace_mergeСочетает два последовательных отсортированных диапазона[начинается](),серединаи[середина,конец(рнг))в едином сортировочном диапазоне[начинается]()),конец(рнг)). То есть начинается с диапазона[начинается]()),конец(рнг)), которая состоит из двух частей, каждая из которых находится в восходящем порядке, и перестраивает ее таким образом, что весь диапазон находится в восходящем порядке.inplace_mergeявляется стабильным, что означает сохранение относительного порядка элементов в пределах каждого входного диапазона.

Definition

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

Requirements

For the non-predicate version:

  • Двунаправленный диапазонявляется моделью концепцииДвунаправленный диапазон.
  • Двунаправленный диапазонизменчив.
  • дальность_значение<Двунаправленный диапазон>::типявляется модельюМенее сопоставимая концепция
  • Порядок на объектахrange_type<Двунаправленный диапазон>::типявляетсястрогим слабым упорядочением, как определено вСравнительная концепция.

Для предиката версия:*Двунаправленный диапазонявляется модельюДвунаправленный диапазонКонцепция. *Двунаправленный диапазонявляется изменчивым. *Бинарный прогнозявляется модельюStrictWeakOrderingConcept. *Двунаправленный диапазонТип значения конвертируемый в обаБинарное Предсказаниетипы аргументов.

Precondition:
For the non-predicate version:
  • средняянаходится в диапазонеринг.
  • начатьрнг,серединанаходится в восходящем порядке. То есть для каждой пары смежных элементовx,y,у<xявляетсяложным.
  • [середина,конец[ринг]находится в восходящем порядке. То есть для каждой пары смежных элементовx,у],у<xявляетсяложным.
For the predicate version:
  • средняянаходится в диапазонеринг.
  • начатьринг,серединанаходится в порядке возрастания. То есть для каждой пары смежных элементовx,y,predу,x==ложный.
  • [середина,конец[ринг]находится в восходящем порядке. То есть для каждой пары смежных элементовx,y,predу,x==ложный.
Complexity

Worst case: O(N log(N))


PrevUpHomeNext

Статья inplace_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:26:01/0.0068039894104004/0