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



Download 1,38 Mb.
bet327/437
Sana22.02.2022
Hajmi1,38 Mb.
#89455
TuriРеферат
1   ...   323   324   325   326   327   328   329   330   ...   437
Bog'liq
word1

2 :

  1. template




  1. struct ReverseSort




  1. {




  1. bool operator()(const KeyType& keyl, const KeyType& key2)




  1. {




  1. return (keyl > key2);




  1. }

10: };


1 1 :



  1. int main ()




  1. {




  1. usingnamespacestd;







16: //карта имультикарта ключей типа int со значениями типа string

464 ЗАНЯТИЕ 20. Классы карт библиотеки STL





  1. mapcint, string> mapIntToStringl;




  1. multimap mmapIntToStringl;








  1. // карта и мультикарта создаются как копия другого контейнера




  1. mapcint, string> mapIntToString2(mapIntToStringl);




  1. multimapcint, string> mmapIntToString2(mmapIntToStringl);



23:



  1. // карта и мультикарта создаются как часть другого контейнера




  1. mapcint, string> mapIntToString3(mapIntToStringl.cbegin(),

    26:

    mapIntToStringl.cend());

    27:




  2. multimapcint, string> mmapIntToString3(mmapIntToStringl.cbegin(),

    29:

    mmapIntToStringl.cend()) ;

    30:




  3. // карта и мультикарта с предикатом сортировки в обратном порядке




  1. mapcint, string, ReverseSortcint> > mapIntToString4




  1. (mapIntToStringl.cbegin(), mapIntToStringl.cend());



34:



  1. multimapcint, string, ReverseSortcint> > mmapIntToString4




  1. (mapIntToStringl.cbegin(), mapIntToStringl.cend());








  1. return 0;




  1. }



Анализ

Для начала сосредоточимся на строках 12-39 функции m ain (). Простейшие карта и мультикарта целочисленных ключей и строковых значений создаются в строках 21 и 22. Строки 25-28 демонстрирую т создание карты или мультикарты, инициализированных диапазоном значений из других контейнеров. Строки 31-36 демонстрирую т создание экземпляров карты и мультикарты с собственным критерием сортировки. Обратите вни­ мание, что сортировка по умолчанию (в предыдущих экземплярах) использует предикат s t d : : lessC T > , который сортировал бы элементы в порядке возрастания. Если вы хотите изменить это поведение, предоставьте предикат, который является классом или структу­ рой, реализующей оператор o p e r a t o r (). Такая структура предиката R e v e r s e S o r t нахо­ дится в строках 4 -10 и используется при создании экземпляра карты в строке 32 и муль­ тикарты в строке 35.





СОВЕТ

Не будет ли ошибки компиляции при использовании методов c b e g in ()

и cen d о?







Если вы попытаетесь откомпилировать эту программу, используя компилятор




не совместимый со стандартом 0 + 1 1 , задействуйте методы begin () и end ()




вместо cbegin () и cend () соответственно. Методы cbegin () и cend () до­




ступны только в 0 + 1 1 , они возвращают константный итератор, который не мо­




жет быть использован для изменения элементов.

Простые операции с классами std::map и std::multimap библиотеки STL

465



Вставка элементов в карту или мультикарту библиотеки STL

Большинство функций карты и мультикарты работают одинаково. Они получают по­ добные параметры и возвращают значения подобных типов. Для вставки элементов в кон­ тейнеры обоих видов используется функция-член i n s e r t ():




std::map mapIntToStringl;



  1. вставить пару ключа и значения с использованием функции make_pair() mapIntToString.insert (make_pair (-1, "Minus One"));

Поскольку элементы этих двух контейнеров содержат пары “клю ч-значение”, вы мо­ жете также непосредственно вставлять инициализированные пары s t d : : p a ir :




mapIntToString.insert (pair (1000, "One Thousand"));



  1. качестве альтернативы можете использовать для вставки синтаксис, как у массива, ко­ торый привычен пользователю и поддерживается оператором индексирования o p e r a to r [ ]:




Download 1,38 Mb.

Do'stlaringiz bilan baham:
1   ...   323   324   325   326   327   328   329   330   ...   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