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


mapIntToString [1000000] = "One Million"



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

mapIntToString [1000000] = "One Million";

Вы можете также создать экземпляр мультикарты как копию карты:




std::multimap mmapIntToString(mapIntToString.cbegin(), mapIntToString.cend());

В листинге 20.2 приведены различные методы создания экземпляра.


ЛИСТИНГ 20.2. Вставка элементов в карту и мультикарту с использованием перегруженного метода insert В и семантики массива с применением оператора operator []_____________





  1. #include




  1. #include




  1. #include



3:



  1. using namespace std;








  1. // определение типа карты и мультикарты для удобочитаемости




  1. typedef map MAP_INT_STRING;




  1. typedef multimap MMAP_INT_STRING;

9:



  1. template




  1. void DisplayContents (const T& Input)



12: {

  1. for(auto iElement = Input.cbegin() // auto and cbegin(): C++11




  1. ; iElement != Input.cend() // cend(): C++11




  1. ; ++ iElement )



16: cout << iElement->first « " -> " « iElement->second



  1. endl;



17:



  1. cout « endl;




  1. }

2 0 :

  1. int main ()



22: {

  1. MAP_INT_STRING mapIntToString;








  1. // Вставка пары "ключ-значение" в карту с использованием




      1. ключевого слова value_type

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





  1. mapIntToString.insert (MAP_INT_STRING::value_type (3, "Three"));








  1. // Вставка пары с использованием функции makejpair()




  1. mapIntToString.insert (make_pair (-1, "Minus One"));








  1. // Вставка объекта пары непосредственно




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








  1. // Вставка пары "ключ-значение" с использованием синтаксиса




    1. массива




  1. mapIntToString [1000000] = "One Million";



36:



  1. cout « "The map contains " « mapIntToString.size ();




  1. cout « " key-value pairs. They are: " « endl;




  1. DisplayContents(mapIntToString);



40:



  1. // Создание экземпляра мультикарты, являющейся копией карты




  1. MMAP_INT_STRING mmapIntToString(mapIntToString.cbegin(),

    4 3:

    mapIntToString.cend());

    44:




  2. // Функция insert() работает так же, как у мультикарты




  1. // Мультикарта может хранить дубликаты. Вставкадубликата




  1. mmapIntToString.insert(make_pair (1000, "Thousand"));







49: cout « endl « "The multimap contains "



    1. mmapIntToString.size ();




  1. cout « " key-value pairs. They are: " « endl;




  1. cout « "The elements in the multimap are: " « endl;




  1. DisplayContents(mmapIntToString);



53:



  1. // Мультикарта способна возвратить количество пар с тем же ключом




  1. cout « \



"The number of pairs in the multimap with 1000 as their key:"



  1. « mmapIntToString.count (1000)« endl;








  1. return 0;




  1. }



Результат


The map contains 4 key-value pairs. They are:


-1 -> Minus One


3 -> Three


1000 -> One Thousand


1000000 -> One Million


The multimap contains 5 key-value pairs. They are:


The elements in the multimap are:


-1 -> Minus One


3 -> Three


1000 -> One Thousand


1000 -> Thousand


1000000 -> One Million



The number of pairs in the multimap with 1000 as their key: 2

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

467



Анализ

Обратите внимание на определение типа для создания экземпляров шаблонов т а р и m u ltim a p в строках 7 и 8. В результате код будет выглядеть немного проще (и сокра­ тит синтаксис шаблона). Строки 10-19 содержат версию функции D is p la y C o n te n ts (), адаптированную для карты и мультикарты, в которой для доступа используется итератор f i r s t , указывающий на ключ, и se co n d , указывающий на значение. Строки 26 -32 содер­ жат различные способы вставки пар “клю ч-значение” в карту с использованием перегру­ женной версии Метода i n s e r t (). Строка 35 демонстрирует возможность использования семантики массива при помощи оператора o p e r a t o r [ ] для вставки элементов в карту. Обратите внимание на то, что эти механизмы вставки работают также для мультикарты, которая представлена в строке 47, где в нее вставляется дубликат. Интересно, что мульти­ карта инициализируется как копия карты (строки 42 и 43). Вывод показывает, что эти два контейнера автоматически сортируют вставляемые пары “клю ч-значение” в порядке воз­ растания ключей. Вывод также демонстрирует, что мультикарта способна хранить пары с одинаковым ключом (в данном случае 1000). Строка 56 демонстрирует применение мето­ да m u ltim a p : : c o u n t (), сообщающего количество элементов в контейнере с указанным ключом.



Download 1,38 Mb.

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