C++ за 21 день седьмое издание



Download 1,38 Mb.
bet344/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   340   341   342   343   344   345   346   347   ...   437
Bog'liq
word1

#include




  1. #include




  1. using namespace std;




  1. // Сюда вставить структуру IsMultiple из листинга 21.3




  1. int main ()

6 : {

  1. vector veclntegers;




  1. cout << "The vector contains the following sample values: ";








    1. // Вставить примеры значений: 25 - 31



11: for (int nCount = 25; nCount < 32; ++ nCount)
12: {

  1. veclntegers.push_back (nCount);




  1. cout << nCount << ' ';




  1. }




  1. cout << endl << "Enter divisor (> 0): ";



17: int Divisor = 2 ; ,



  1. cin >> Divisor;








  1. // Найти в коллекции первый элемент,кратный 4




  1. auto iElement = find_if ( eclntegers.begin ()

22:

,veclntegers.end ()

23:

, IsMultiple(Divisor) );

492 ЗАНЯТИЕ 21. Понятие объектов функций




24:



  1. if(iElement != veclntegers.end ())




  1. {




  1. cout << "First element in vector divisible by " << Divisor;




  1. cout << ": " << *iElement << endl;




  1. }



30:



  1. return 0;




  1. }



Результат


The vector contains the following sample values: 25 26 27 28 29 30 31


The first element in the vector that is divisible by 4 is: 28


Анализ

Пример начинается с простого контейнера — вектора целых чисел. В строках 11-15


он заполняется примерами чисел. П рименение унарного предиката осущ ествляет­ ся в алгоритме поиска f i n d _ i f (), как показано в строке 23. Объект функции IsM u l-t i p l e ( ) инициализируется предоставляемым пользователем значением делителя, ко­ торое сохраняется в переменной D iv is o r . Алгоритм f i n d _ i f () вызывает оператор


I s M u l t i p l e : : o p e r a t o r () унарного предиката для каждого элемента в определенном диапазоне. Когда оператор o p e r a to r () возвращает для элемента значение t r u e (что про­





исходит, когда он делится на 4 без остатка), алгоритм

f i n d i f () возвращ ает итератор

iE le m e n t на этот элемент. Результат вызова f i n d _ i f

() сравнивается с результатом вы­

зова метода e n d () контейнера, чтобы удостовериться в успехе поиска элемента (стро­

ка 25). Затем итератор iE le m e n t используется для отображения значения, как показано в строке 28.



СОВЕТ
Чтобы увидеть, как применение лямбда-выражений повышает компактность

программы, представленной в листинге 21.4, обратите внимание на ли­ стинг 22.3 занятия 22.


Унарные предикаты применяю тся в больш инстве алгоритмов STL, таких как s t d : : p a r t i t i o n (), позволяю щ их разделить диапазон, с использованием предиката



s t a b l e _ p a r t i t i o n , который делает то же самое при сохранении относительного поряд­ ка разделенных элементов, а также таких функций поиска, как s t d : : f i n d i f (), и таких функций, как s t d : : r e m o v e _ i f (), позволяющ их удалять удовлетворяющие предикату элементы в определенном диапазоне.





Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   340   341   342   343   344   345   346   347   ...   437




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish