Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет462/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   458   459   460   461   462   463   464   465   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

p1.fi rst < p2.fi rst

 не-



342

месе 


p1.fi rst == p2.fi rst && p1.second < р2.second

 болса, 


p1

 жұбы 


р2

 жұбынан кіші болып саналады.

Жұпқа мəнді меншіктеу үшін 

make_pair

 функциясын қолдануға болады:



template

 

pair<Т1, T2> make_pair(const T1& х, const T2& у); 

Жұптарды қалыптастыру мысалы:



#include  

#include  

using namespace std

int main(){

 

pair p1(10, 12.3), p2(p1);

 

p2 = make_pair(20, 12.3); 

    // p2 = pair (20, 12.3) өрнегіне эквивалентті 

   cout << "p1: " << p1.fi rst << " " << p1.second << endl; 

   cout << "p2: " << p2.fi rst << " " << p2.second << endl; 

 p2.fi rst -= 10;

 

if (p1 == p2) cout << "p1 == p2\n"; 

 

p1.second -= 1;

 

if (p2 > p1) cout << "p2 > p1\n";

}

Программаның орындалу нəтижесі:



p1: 10 12.3 

p2: 20 12.3 

p1 == p2 

p2 > p1

 тақырыптық файлы 



 немесе 


 файлдарын қолдану 

кезінде автоматты түрде қосылады.

Сөздіктер (map)

Сөздікте (



map

), дубликатты сөздіктерге (



multiset

) қарағанда, барлық 

кілттер қайталанбайтын болуы тиіс. Сөздіктегі элементтер сұрыпталған түрде 

сақталады, сондықтан кілттер үшін «кіші» қатынасы анықталуы тиіс. Сөздіктің 

шаблонында үш параметр болады: кілттің типі, элементтің типі, «кіші» 

қатынасын анықтайтын функционалды объектінің типі (функционалдық 

объектілер 211 б. қарастырылған):

template

class map{ 

 public:

 

   typedef pair value_type;

 

   explicit map(const Compares comp = Compare());

      template map(InputIter fi rst, 



343

          InputIter last, const Compares comp = Compare());

 

   map(const map & x); 

  

...

};

Келтірілген сипаттамада (ол қысқартылған түрде берілген) көрсетілгендей



value_type

 сөздік элементтерінің типі 



Key

 жəне


 T

 типті элементтердің жұбы 

ретінде анықталады. 

Бірінші конструктор көрсетілген функционалды объектіні қолдана отырып

бос сөздік құрады. Екінші конструктор сөздікті құрады да, оған көрсетілген 

итераторлар диапазонымен анықталатын элементтерді жазады. Егер элемент-

тер сұрыпталып реттелген болса, осы конструктордың жұмыс істеу уақыты 

жазылатын элементтердің санына пропорционал, ал кері жағдайда элементтер 

санының квадратына тең болады. Үшінші конструктор көшіру конструкторы 

болып табылады.

Барлық контейнерлердегі сияқты, сөздік үшін де деструктор, меншіктеу 

операциясы жəне қатынас операциясы анықталған. Сөздіктің итераторлары 

12-кестеде көрсетілген. Элементтерге кілті бойынша қол жеткізу үшін 

[ ]

 

операциясы анықталған:





Достарыңызбен бөлісу:
1   ...   458   459   460   461   462   463   464   465   ...   642




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет