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


transform ( vecMultiplicand.begin ()



Download 1,38 Mb.
bet351/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   347   348   349   350   351   352   353   354   ...   437
Bog'liq
word1

24

transform ( vecMultiplicand.begin (),

// диапазон множителей

25

26

vecMultiplicand.end

(),

// конец диапазона

27

vecMultiplier.begin

(),

// значения множителей

28

vecResult.begin

(),

// диапазон,

содержащий результат

29

[](int a, int b)

{return

a * b;

} ); // лямбда

30
















  • cout « "The contents of the first vector are: " « endl;




    1. for (size_t nlndexl = 0; nlndexl < vecMultiplicand.size ();




      1. nlndexl)




    1. cout « vecMultiplicand [nlndexl] « ' ';




    1. cout « endl;



    35


    36 cout « "The contents of the second vector are: " « endl;

    508 ЗАНЯТИЕ 22. Лямбда-выражения языка С++11





    1. for (size_t nlndex2 = 0; nlndex2 < vecMultiplier.size (); ++nlndex5)

    2. cout « vecMultiplier [nlndex2] « '




    1. cout « endl « endl;



    40



    1. cout « "The result of the multiplication is: " « endl;




    1. for (size_t nlndex = 0; nlndex < vecResult.size (); ++ nlndex)



    43 cout « vecResult [nlndex] « ' ';


    cout « endl;


    return 0;


    47: }


    Результат


    The contents of the first vector are:


    0123456789


    The contents of the second vector are:


    100 101 102 103 104 105 106 107 108 109


    The result of the multiplication is:


    0 101 204 309 416 525 636 749 864 981


    Анализ

    Рассматриваемое лямбда-выражение используется в строке 29 как параметр для алго­ ритма s t d : : tr a n s f o r m (). Этот алгоритм принимает два диапазона и применяет преобра­ зование, содержащееся в бинарной функции. Возвращаемое значение бинарной функции сохраняется в выходном контейнере. Эта бинарная функция — лямбда-выражение, при­ нимающее два целых числа и возвращающее результат умножения как возвращаемое зна­ чение. Полученное возвращаемое значение сохраняется алгоритмом s t d : : t r a n s f o r m ()





    1. векторе v e c R e s u lt . Вывод демонстрирует содержимое двух контейнеров и результат умножения их элементов.

    Листинг 22.4 демонстрирует лямбда-эквивалент объекта функции класса Mul-t i p l y o из листинга 21.5.


    Лямбда-выражение для бинарного предиката

    Бинарная функция, возвращающая значение t r u e или f a l s e , позволяет принять реш е­ ние при вызове бинарного предиката. Эти предикаты применяются в алгоритмах сорти­ ровки, таких как s t d : : s o r t (), которые вызывают бинарный предикат для любых двух значений в контейнере, чтобы узнать, какой из них должен располагаться перед другим. Вот обобщенный синтаксис бинарного предиката:




    [...](Туре1& paramlName, Туре2& param2Name) { // выражение, возвращающее логическое значение; }

    Лямбда-выражение для бинарного предиката

    509

    В листинге 22.5 показано лямбда-выражение, используемое при сортировке.


    ЛИСТИНГ 22.5. Лямбда-выражение как бинарный предикат алгоритма std::sort (), обеспечивающий независящую от регистра сортировку






    1. Download 1,38 Mb.

      Do'stlaringiz bilan baham:
  • 1   ...   347   348   349   350   351   352   353   354   ...   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