Г. Шилдт - Полный справочник по C++ (1109478), страница 126
Текст из файла (страница 126)
Вторая версия позволяет программисту самсстоятельно залавать функцию сравнения. Алгоритм рагИа! Вог~ сору Сотпр1ахе <с1аяя 1п1хек, с1аяя Капй1хех> напй1сех рагсьа1 яогс сору(1п1сег пан, 1п1сег енн', лапй1сег гет нап, папйтсег гез енн') седл>1асе <с1аяя 1п1сег, с1аяя натк)1сех, с1аяя сотар> папй1сек рагсьа1 яокс сору(1п1сег ттаг(, 1п1сег енд, лапйтсег гет зтан, Еапйтсех гез енн', Сопр сняин) 1 Алгоритм рагсьа1 вогс сору() упорядочивает послеловательность, ограниченную итераторами зтагг и ел((, а затем копирует в результируюшую последовательность, определенную итеразорами лез зтаг( и гез енд, столько элементов, сколько она может вместить. Он возврашает итератор, установленный на элемент результируюшей последовательности, который был скопирован последним.
Вторая версия позволяет программисту самостоятельно задавать функцию сравнения, Алгоритм рагй(оп Сепр1аге «с1аяя В11хох, с1аяя Ппяхей> в11ссг рагс1сьоп(в11сех нигг, в11хег етн(, цпвхей (лн); Алгоритм раке1с1тят() упорядочивает последовательность, ограниченную итера- торами ятап и еня', так, чтобы все злел1енты, для которых унарный преликат ((Гл является истинным, прелшествовали тем, для которых этот предикат возврашает ложное значение. Алгоритм возврашает итератор, установленныи в начало элементов, для которых предикат является ложным. Алгоритм рор пеар т сепр1асе <с1аяя йапй1хег> чоай рор )теар(папйтсех нап, папй1сег ент()т Сетлр1ахе <с1аяя Лапй1хек, с1аяя Сол1р> чоьй рор Беар(лапй1сех наги напй1сег гюЫ, сспр пнр1н)." Алгоритм пор неар() меняет местами первый и прелпоследний элементы и перестраивает кучу. Вторая версия позволяет программисту самостоятельно задавать функцию сравнения.
Глава 34. Стандартные алгоритмы Алгоритм ргеч регайа6оп 1 со«1р1а«е <с1аяя В>1сет> сюо1 ртеч реттисасхоп(вххсет згагг, Вх1«ет еЫ); сепр1асе сс1аяя Вххсех, с1аяя сопр> ьоо1 ртеп роспита«хоп(Вххсет згагг, В11«ет елг(, сопр ело(хп): Алгоритм рхеч рехпзисасеоп() вассозласт прслылушую перестановку, состояшую из элементов послсловатсльности. Перестановки гснсрирукпся на основе упорядоченной последовательности, которая считается первой перестановкой. Если слсдуюшсй перестановки не сушсствует, алгоритм пехс рехпгзсасхоп() упорядочивает послсловатсльность, прсдставляюшую собой последнюю перестановку, и возврашаст знпчснис Еа1ве.
В противном случае возврашается значение схие. Вторая версия алгоритма позволяет программисту самостоятельно задавать функцию сравнения. Алгоритм роап 'пеар г г сопр1асе <с1авя Вапг)1«ег> ио1<) рияп )зоар(Васс)1«ет магг, Ваге)1«ет еЫ)г сапр1аса <схаяя Вапг)1«ех, с1аяя согр > ио1<) риян ьеар(пап«)1«ах згап, Баас)хсет елг), сопр гтлрхл) г Алгоритм ривн неар[) заталкивает элемент в конец кучи. Прслполагастся, что диапазон, ограниченный итераторами згагг и елг(, представляет собой корректную кучу.
Вторая версия позволяет програл1мисту самостоятельно зпх)звать функцию сравнения. Алгоритм гапдогп ВЬЛе «апр1а«а <с1аяя Вапс(хсех> похе) таис)оп япиЕЕ1е(папе)1«ат пагг, Вапг(1«ет егл() сепр1асе сс1аяя Вапйхсет, с1аяя Оепехасот> иохс) папе)оп я)гихе1е(даос)1«ет маа, вапг)хсет евг), Оепета«ох гапй,сеа) г Алгоритм хапооп вниЕЕХе() и«ратасов)лгьзст послсдавптсльнгють, ограниченную итсраторами жагг и елгх Вторая версия позволяет программисту самостоятельно задавать генератор случайнык чисел. Эта функция должна иметь слсдуюц(ий вил и возврашлть случайное число, лсжашее между числами 0 и лал« И халс) сап(лли~) г Алгоритмы геп)оче, геаоче И, гегпоче сору и геточе сору Ы сепр1асе сс1аяя Роххгет, с1аяв т> Ратх«ах хепоие(Ратх«ох пап, Ратх«ах елг(, сопя« т ьпа(); сепр1асе <с1аяя Рот1«ат, с1аяя ипвтее(> Ротхсет хепоъе Ее(Ратх«ах магг, Рох1сех елг(, Опвтес) йгл) «епр1асе сс1аяя 1п1«ет, «1авя Ои«1«ет, с1аяя т> Оисх«ет попоив сору(хп1«ех пагп 1п1сет еад, Ои«1«ех гезл)п сопя« т ьпа)) г «еп|р1асе <с1аяя 1пхсет, с1аяя Ои«1«ет, «1аяв Опвтес)> Оисхсет хапоие сору хЕ(1п1«ех пап, хпхсех елг(, Оисхсет гезий, ОпРтеа лйл); Часть (т'.
библиотека сганйвртнык классов Алгоритл» теаю»ге() удаляет из указанной последовательности элементы, имею»цие значение иа1. Возвращается итератор, установленный на последний из оставшихся элементов. Алгоритм теяоие йй() удаляет из указанной последовательности элементы, для которых предикат )1)п является истинным. Возвращается итератор, установленный на последний из оставшихся элементов.
Алгоритм теа»оае сору() копирует из указанной последовательности элементы, имеющие значение га1, и записывает результат в последовательность, адресуему»о итератором гееи1с. Возвращается итератор, установленный на послелний из оставшихся элементов. Алгоритм геяо ге сору йд() копирует из указанной последовательности элементы, для которых предикат р(п является истинным, и записывает результат в послеловательность, адресуемую итератором теяи1с. Возвращается итератор, установленный на последний из оставшихся элементов. Вторая версия позволяет программисту самому задать функцию сравнения, определяющую критерий поиска.
Алгоритмы гер1асе, гер1асе сору, гер1асе Ы и гер1асе сору Ы сел»р1асе <с1аяя Рот1сег, с1аяе т> Рой») гер1асе(уот1сет маг», Рог1сег епН, сопят т йай1, сопвс т алея)» сел»р1асе <с1аяя Рот1сет, с1аяя Опргее), с1аяя т> иоьс) тер1асе 11(уот1сет з»ап, Рог1сег е»»»(, Опртее) РЛ», сооас т йаея) ) сел»р1асе <с1аяя 1п1сет, с1аяв Оистсет, с1аяя т> Оис1сет гер1асе сору(1п1сет з»ап, 1п1сег е»»»(, Оис1сет геп»1», сопят т йаЫ, сопят т йае»г)» сея»р1асе <с1аяя 1п1сет, с1аяя оис1сет, с1аяя порте»), с1аяа т> Оит1тет гер1асе сору 11(1п1Сет Пап, 1п1Сет е»»»(, ОиС1гег <ехай, порте») Р1п, сопят т йае»е); Алгоритм тарлесе() заменяет элементы заданного диапазона, имеющие значение аЫ, алел»ситами, имеющими значение тай Алгоритм гер1асе 1т() заменяет элементы заданного диапазона, соответствующие предикату ргп, элементами, имеющими значение пе»е.
Алгоритм тер1асе сору йт () копирует элементы заданного диапазона в последовательность, адресуемую итератором геза1(, заменяя элементы, имеющие значение аЫ, элементами, имеющими значение пею. Исходный диапазон не изменяется. Возвращается итератор, установленный на конец последовательности гела!1. Алгоритм гер1асе сору() копирует элементы заданного диапазона в послеловательность, адресуемую итератором гея»11, заменяя элементы, соответствующие предикату й1п, элементами, имеющими значение пеи. Исходный диапазон не изменяется. Возвращается итератор, установленный на конец последовательности газа!1.
Вторая версия позволяет програл»мисту сам»»стоятельно задавать функцию сравнения, определяющую критерий поиска. БЧ1 Глава 34. Стандартные алгоритмы Алгоритмы ге)(егзе и гечегзе сору сеарХасе <схаяя ВХ1тет> иоЫ теиетяе(ВХХтет аагп В11тет елН); сегпрХате <сХаяя ВХХтех, сХаяя ОисХсет> ОисХтет теуетяе сору(Вз.1тот зшп, ВТХтет глН, ОитХхех гезий; Алгоритм хагятяе() меняет порядок следования элеь1ентов диапазона, ограниченного итераторами з)аг( и елН.
Алгоритм хечяхяе сару() меняет порядок следования элементов диапазона, ограниченного итераторами зтаг( и елг(, и копирует результат в послсловательность, адресуемую итсратором гехи(г. Алгоритм возвращает итератор, установленный на конец результируюшей последовательности. Алгоритмы го1а1е и го$а1е сору ХетрХате <сХаяя Рохттех> иозо тотате(Рот1тет запт, Рох1сех л~И, Роттсех елН) СегпрХате <сХаяя Ротттет, сХаяя Оит1тет> Оит1тет тосасе сору(Рохттет пягп Рот1сет иЫ, Рот1тет елг(, ОихХтех гезий); Алгоритм хотаее() выполняет левое вращение элементов диапазона, ограниченного итсраторами зтан и елг(, так что элемент, заданный итератором ли4 становится первым.
Алгоритм хоеясв сору() выполняет левое вращение элементов диапазона, ограниченного итераторами ятап и ела', и копирует результат в последовательность, адресуемую итератором тези!г. Алгоритм возврашаст итсратор, установлсннын на конец результирующей последовательности. Алгоритм зеагсл сепрХате <сХаяя РохХсех1, с1аяя Рох1тет2> Рот1сетХ яеахс)з (РотХсех1 зшп), Рот1тетх глН, Рот1тех2 зып2, РотХтет2 слг)2); тегпр1асе <сХаяя Рох1тет1, с1аяя Рот1тех2, сХаяя ВХпРхео> Рот1тетх яеатс)з(РоттсетХ згам), Рот1тет1 с~И!, Рох1сет2 зган2, Рох1тет2 ыл(2, ВзпРхес) Р/и); Алгоритм яяахсн() выполняет поиск подпоследоватсльности, ограниченной итераторами згаг(2 и елд2, в диапазоне, определенном итсрапзрами «гап) и еаП Если такая подпоследовательность нс найдена, алгоритм возвращает итератор елН.