Cîçäaòü øaáëîí êëañña «áèíaðíîå äåðåâî». Èñïîëüçîâaòü åãî ïðè ðåøåíèè çaäa-
÷è 18 èç ðaçäåëa «Äèíaìè÷åñêèå ñòðóêòóðû äaííûõ» (ñì. óïðaæíåíèя ê ïåðâîé
÷añòè).
Вариант 20
Cîçäaòü øaáëîí êëañña «áèíaðíîå äåðåâî», ñîäåðæaùåå óêaçaòåëè ía ýëåìåíòû äaííûõ. Èñïîëüçîâaòü åãî ïðè ðåøåíèè çaäa÷è 20 èç ðaçäåëa «Äèíaìè÷åñêèå ñòðóêòóðû äaííûõ» (ñì. óïðaæíåíèя ê ïåðâîé ÷añòè).
ЧАСТЬ III
Стандартная библиотека
 ëþáîé ïðîãðaììå, êðîìå îïåðaòîðîâ яçûêa, èñïîëüçóþòñя ñðåäñòâa áèáëèîòåê, âêëþ÷aåìûõ â ñðåäó ïðîãðaììèðîâaíèя. Ðaçëè÷íûå ñðåäû ïðåäîñòaâëяþò â ðañ- ïîðяæåíèå ïðîãðaììèñòa ðaçíûå íaáîðû ñðåäñòâ, îáëåã÷aþùèõ ñîçäaíèå ïðî- ãðaìì, — íaïðèìåð, êîìïèëяòîðû Microsoft Visual C++ è Borland C++ ñîäåðæaò áèáëèîòåêè êëaññîâ äëя íaïèñaíèя ïðèëîæåíèé Windows. ×añòü áèáëèîòåê ñòaíäaðòèçîâaía, òî åñòü äîëæía ïîñòaâëяòüñя ñ ëþáûì êîìïèëяòîðîì яçûêa C++.
Còaíäaðòíóþ áèáëèîòåêó C++ ìîæíî óñëîâíî ðaçäåëèòü ía äâå ÷añòè. Ê ïåðâîé îòíîñяòñя ôóíêöèè, ìaêðîñû, òèïû è êîíñòaíòû, óíañëåäîâaííûå èç áèáëèîòåêè C, a êî âòîðîé — êëaññû è äðóãèå ñðåäñòâa C++. Ïåðâaя ÷añòü áèáëèîòåêè ðañ- ñìaòðèâaëañü â ðaçäåëå «Ôóíêöèè ñòaíäaðòíîé áèáëèîòåêè» (ñ. 88). Cïèñîê êîí- ñòaíò, ìaêðîñîâ è òèïîâ ïðèâåäåí â ïðèëîæåíèè 5, a ñïèñîê ôóíêöèé — â ïðèëî- æåíèè 6. Âòîðaя ÷añòü ñîäåðæèò êëaññû, øaáëîíû è äðóãèå ñðåäñòâa äëя ââîäa, âûâîäa, õðaíåíèя è îáðaáîòêè äaííûõ êaê ñòaíäaðòíûõ òèïîâ, òaê è òèïîâ, îïðå- äåëåííûõ ïîëüçîâaòåëåì.
Êëaññû ñòaíäaðòíîé áèáëèîòåêè ìîæíî ðaçäåëèòü ía ãðóïïû â ñîîòâåòñòâèè ñ èõ íaçía÷åíèåì.
Ïîòînîâûå nëaññû ïðåäíaçía÷åíû äëя óïðaâëåíèя ïîòîêaìè äaííûõ ìåæäó îïåðaòèâíîé ïaìяòüþ è âíåøíèìè óñòðîéñòâaìè (íaïðèìåð, äèñêaìè è êîí- ñîëüþ), a òaêæå â ïðåäåëaõ îïåðaòèâíîé ïaìяòè.
Còðînîâûñ nëaññ ïðåäíaçía÷åí äëя óäîáíîé è çaùèùåííîé îò îøèáîê ðaáîòû ñ ñèìâîëüíûìè ñòðîêaìè.
Êîíòåñíåðíûå nëaññû ðåaëèçóþò íaèáîëåå ðañïðîñòðaíåííûå ñòðóêòóðû äëя õðaíåíèя äaííûõ — íaïðèìåð, ñïèñêè, âåêòîða è ìíîæåñòâa. Â áèáëèîòåêó âõîäяò òaêæå aëãîðèòìû, èñïîëüçóþùèå ýòè êîíòåéíåðû.
Èòåðaòîðû ïðåäíaçía÷åíû äëя óíèôèöèðîâaííîãî äîñòóïa ê ýëåìåíòaì êîí- òåéíåðíûõ è äðóãèõ êëaññîâ.
Ìaòåìaòè÷åñnèå nëaññû ïîääåðæèâaþò ýôôåêòèâíóþ îáðaáîòêó ìaññèâîâ ñ ïëaâaþùåé òî÷êîé è ðaáîòó ñ êîìïëåêñíûìè ÷èñëaìè.
Äèaãíîñòè÷åñnèå nëaññû îáåñïå÷èâaþò äèíaìè÷åñêóþ èäåíòèôèêaöèþ òèïîâ è îáúåêòíî-îðèåíòèðîâaííóþ îáðaáîòêó îøèáîê.
Îñòaëüíûå nëaññû îáåñïå÷èâaþò äèíaìè÷åñêîå ðañïðåäåëåíèå ïaìяòè, aäaï- òaöèþ ê ëîêaëüíûì îñîáåííîñòяì, îáðaáîòêó ôóíêöèîíaëüíûõ îáúåêòîâ è ò. ä.
×añòü áèáëèîòåêè, â êîòîðóþ âõîäяò êîíòåéíåðíûå êëaññû, aëãîðèòìû è èòåða- òîðû, íaçûâaþò ñòaíäaðòíîñ áèáëèîòånîñ øaáëîíîâ (STL — Standard Template Library).
Äëя èñïîëüçîâaíèя ñðåäñòâ ñòaíäaðòíîé áèáëèîòåêè â ïðîãðaììó òðåáóåòñя âêëþ÷èòü ñ ïîìîùüþ äèðåêòèâû inClude ñîîòâåòñòâóþùèå çaãîëîâî÷íûå ôaé- ëû. Íaïðèìåð, ïîòîêè îïèñaíû â , a ñïèñêè — â . Ýëåìåíòû çaãî- ëîâî÷íûõ ôaéëîâ áåç ðañøèðåíèя .h îïðåäåëåíû â ïðîñòðaíñòâå èìåí std, a îä- íîèìåííûå ôaéëû ñ ðañøèðåíèåì .h — â ãëîáaëüíîì ïðîñòðaíñòâå èìåí. Cïèñîê çaãîëîâî÷íûõ ôaéëîâ ñòaíäaðòíîé áèáëèîòåêè ïðèâåäåí â ïðèëîæåíèè 4.
Èìåía çaãîëîâî÷íûõ ôaéëîâ C++ äëя ôóíêöèé áèáëèîòåêè C, îïðåäåëåííûå â ïðîñòðaíñòâå èìåí std, ía÷èíaþòñя ñ áóêâû ñ, íaïðèìåð, , ,
. Äëя êaæäîãî çaãîëîâî÷íîãî ôaéëa âèäa <ñÕ> ñóùåñòâóåò ôaéë , îïðå- äåëяþùèé òå æå èìåía â ãëîáaëüíîì ïðîñòðaíñòâå èìåí (ñì. ñ. 100)1.
1 Íaèáîëüøaя ïóòaíèöa âîçíèêaåò ñ èìåíaìè çaãîëîâêîâ ñòðîê: string — çaãîëîâîê äëя ða- áîòû ñî ñòðîêîâûìè êëaññaìè C++, Cstring — âåðñèя çaãîëîâêa ôóíêöèé C â ïðîñòðaíñò- âå èìåí std, string.h — òî æå ñaìîå â ãëîáaëüíîì ïðîñòðaíñòâå èìåí, Cstring.h — ñòaðûé çaãîëîâîê äëя ðaáîòû ñî ñòðîêîâûìè êëaññaìè C++ â ãëîáaëüíîì ïðîñòðaíñòâå èìåí â îäíîé èç îáîëî÷åê.
Do'stlaringiz bilan baham: |