partial_ sort, partial_sort_copy 363
partition, stable_partition 363
sort, stable_sort 364
Алгоритмы работы с множествами и пирамидами 364
includes 365
set_intersection 365
set_difference, set_symmetric_difference 366
set_union 366
Пример использования алгоритмов работы с множествами 366
make_heap 367
pop_heap 368
push_heap 368
sort_heap 368
Глава 15. Средства для численных расчетов 369
Обобщенные численные алгоритмы 369
accumulate 369
inner_product 370
partial_sum 370
adjacent_difference 371
Класс valarray 371
Вспомогательные классы 374
Глава 16. Другие средства стандартной библиотеки 378
Упражнения к части III 381
Послесловие 382
Литература 383
Приложение 1. Операции языка С++ 384
Приложение 2. Спецификации формата
для функций семейства printf 387
Приложение 3. Арифметические преобразования типов 390
Приложение 4. Заголовочные файлы стандартной библиотеки 391
Приложение 5. Константы, макросы и типы данных
стандартной библиотеки 394
Приложение 6. Функции стандартной библиотеки 409
Состав заголовочных файлов 409
Алфавитный перечень функций 416
Приложение 7. Таблицы кодов ASCII 447
Алфавитный указатель 450
Предисловие
Çaäa÷a ýòîé êíèãè — äaòü êðaòêîå è ÷åòêîå èçëîæåíèå яçûêa Ñ++ â ñîîòâåòñòâèè ñî ñòaíäaðòîì ISO/IEC 14882 (1998) áåç ëåãêîâåñíîñòè è ôðaãìåíòaðíîñòè ñåðèè «Äëя ÷aéíèêîâ» è áåç ïðîñòðaííûõ ðaññóæäåíèé î íþaíñaõ, âaæíîñòü êî- òîðûõ ñòaíîâèòñя î÷åâèäíîé òîëüêî ïîñëå ïðèîáðåòåíèя îïûòa ïðîãðaììèðîâa- íèя. Êíèãa ïðåäíaçía÷åía äëя ñòóäåíòîâ, èçó÷aþùèõ яçûê «ñ íóëя», íî áóäåò ïî- ëåçía è áîëåå èñêóøåííûì â ïðîãðaììèðîâaíèè. Ìîæíî ðaññìaòðèâaòü åå êaê êîíñïåêò ëåêöèé èëè áîëüøóþ øïaðãaëêó.
Êíèãa íå ïðåòåíäóåò ía ïîëíîòó èçëîæåíèя ìaòåðèaëa, äëя ýòîãî ñóùåñòâóþò ñïðaâî÷íèêè, äîêóìåíòaöèя è êîíòåêñòíaя ïîìîùü. Öåëü, êîòîðaя ñòaâèëañü ïðè åå íaïèñaíèè, — äaòü ïðaâèëüíîå ïðåäñòaâëåíèå î âîçìîæíîñòяõ яçûêa Ñ++ è ñïîñîáaõ èõ ïðèìåíåíèя, a òaêæå òîë÷îê ê äaëüíåéøåìó èçó÷åíèþ ýòîãî è äðó- ãèõ яçûêîâ ïðîãðaììèðîâaíèя.
Êðîìå êîíñòðóêöèé яçûêa, â êíèãå ðaññìaòðèâaþòñя îñíîâíûå ñòðóêòóðû äaí- íûõ, èñïîëüçóåìûå ïðè íaïèñaíèè ïðîãðaìì, êðèòåðèè êa÷åñòâa ïðîãðaìì, a òaê- æå ðåêîìåíäaöèè ïî ñòèëþ è òåõíîëîãèè ïðîãðaììèðîâaíèя.
Äîïîëíåíèåì ê ýòîìó ó÷åáíèêó яâëяåòñя ïðaêòèêóì Ïaâëîâñêîé Ò. À. è Ùóïa- êa Þ. À. «C/C++. Ïðîãðaììèðîâaíèå ía яçûêå âûñîêîãî óðîâíя. Ñòðóêòóðíîå ïðîãðaììèðîâaíèå», âûïóùåííaя èçäaòåëüñòâîì «Ïèòåð» â 2002 ãîäó.  íåì îïè- ñûâaþòñя ñðåäñòâa Ñ++, èñïîëüçóåìûå â ðaìêaõ ñòðóêòóðíîé ïaðaäèãìû, âûïîë- íяåòñя ðaçáîð è aíaëèç ëaáîðaòîðíûõ çaäaíèé, ïðèâåäåííûõ â ó÷åáíèêå, ïîäðîáíî ðaññìaòðèâaåòñя òåõíîëîãèя ñîçäaíèя è îòëaäêè ïðîãðaìì, ïðèâîäяòñя âaðèaíòû ðåøåíèé ñ îöåíêîé èõ ýôôåêòèâíîñòè.  2004 ãîäó ïëaíèðóåòñя âûïóñê âòîðîé
÷añòè ïðaêòèêóìa, ïîñâяùåííîé îáúåêòíî-îðèåíòèðîâaííîìó ïðîãðaììèðîâa- íèþ. Êðóã ðaññìaòðèâaåìûõ â ïðaêòèêóìå âîïðîñîâ — UML, áaçîâûå êîíöåïöèè ïðîãðaììíîé èíæåíåðèè, ïaòòåðíû ïðîåêòèðîâaíèя — âûõîäèò ça ðaìêè ó÷åáíè- êa è ïîçâîëяåò ÷èòaòåëþ áûñòðåå âîéòè â ìèð ïðîôåññèîíaëüíîãî ïðîãðaììèðî- âaíèя.
Áîëeå òðåòè êíèãè ïîñâяùåíî îáçîðó ñòaíäaðòíîé áèáëèîòåêè — èíñòðóìåíòa, êîòîðûì äîëæåí âëaäåòü êaæäûé ïðîôåññèîíaëüíûé ïðîãðaììèñò äëя óìåíüøå- íèя ñðîêîâ ðaçðaáîòêè ïðîãðaìì è ïîâûøåíèя èõ íaäåæíîñòè, ïåðåíîñèìîñòè è óíèâåðñaëüíîñòè.
 êíèãå íå ðaññìaòðèâaåòñя ïðîãðaììèðîâaíèå ïîä Windows è äðóãèå ñðåäû, ïî- ýòîìó âñå ïðèìåðû ïðåäñòaâëяþò ñîáîé òaê íaçûâaåìûå «êîíñîëüíûå ïðèëîæå-
12 Предисловие
íèя». Ñèíòaêñèñ ïðèìåðîâ ñîîòâåòñòâóåò ñòaíäaðòó Ñ++, ïîýòîìó íåêîòîðûå èç íèõ ìîãóò íå êîìïèëèðîâaòüñя â îáîëî÷êaõ, âûïóùåííûõ äî åãî óòâåðæäåíèя.
Êíèãa ñîñòîèò èç òðåõ ÷añòåé: «Ñòðóêòóðíîå ïðîãðaììèðîâaíèå», «Îáúåêòíî- îðèåíòèðîâaííîå ïðîãðaììèðîâaíèå» è «Ñòaíäaðòíaя áèáëèîòåêa».
 ïåðâîé ÷añòè ðaññìaòðèâaþòñя îñíîâíûå êîíñòðóêöèè яçûêa è áaçîâaя òåõíî- ëîãèя ñîçäaíèя ïðîãðaìì, îòâå÷aþùèõ ñîâðåìåííûì òðåáîâaíèяì êa÷åñòâa è ía- äåæíîñòè.
Âòîðaя ÷añòü ïîñâяùåía îïèñaíèþ ñðåäñòâ яçûêa, ïîçâîëяþùèõ óñïåøíî ñîçäa- âaòü ïðîãðaììû áîëüøîãî îáúåìa — êëaññîâ, íañëåäîâaíèя, øaáëîíîâ è èñêëþ-
÷åíèé. Ìaòåðèaë ýòîé ÷añòè íåîáõîäèì òaêæå äëя îñâîåíèя ñòaíäaðòíîé áèáëèî- òåêè.
 òðåòüåé ÷añòè äaíî îïèñaíèå ñðåäñòâ ñòaíäaðòíîé áèáëèîòåêè Ñ++. Ðaññìaòðè- âaþòñя ïîòîêè, êîíòåéíåðû, èòåðaòîðû, âåêòîðû, ñòaíäaðòíûå aëãîðèòìû è ñâяçè ìåæäó íèìè.
Îïðåäåëåíèя ñèíòaêñè÷åñêèõ ýëåìåíòîâ яçûêa âûäåëåíû â òåêñòå êíèãè ïîëó- æèðíûì øðèôòîì.
 ïðèëîæåíèяõ ñîäåðæèòñя áîëüøîå êîëè÷åñòâî ñïðaâî÷íîé èíôîðìaöèè, íåîá- õîäèìîé ïðè íaïèñaíèè ëþáîé ïðîãðaììû.
Âñå êëþ÷åâûå ñëîâa, òèïû, êîíñòaíòû, ôóíêöèè, ìaêðîñû è êëaññû, îïèñaííûå â êíèãå, ìîæíî íaéòè ïî ïðåäìåòíîìó óêaçaòåëþ, ÷òî ïîçâîëяåò èñïîëüçîâaòü åå è êaê ñïðaâî÷íèê. Äëя óäîáñòâa ïîëüçîâaíèя ïîñëå èìåíè ýëåìåíòa â ñòðîêå óêa- çaòåëя ÷åðåç çaïяòóþ ïðèâåäåíî èìя êëañña, ê êîòîðîìó ïðèíaäëåæèò äaííûé ýëåìåíò, èëè ïîяñíåíèå.
Ïîëüçóяñü ñëó÷aåì, õî÷ó âûðaçèòü ãëóáîêóþ áëaãîäaðíîñòü ìîèì ïåðâûì ïðåïî- äaâaòåëяì ïðîãðaììèðîâaíèя Ï. À. Øèïèëîâó è Ã. Ë. Ãîëîâaíåâñêîìó, ñîòðóä- íèêó èçäaòåëüñòâa «Ïèòåð» À. Â. Âañèëüåâó, êîëëåãaì À. Â. Ëaçäèíó, Þ. À. Ùó- ïaêó è È. ßêîâëåâó, âñåì êîðèôåяì, óïîìяíóòûì â ñïèñêå ëèòåðaòóðû, a òaêæå ìîèì ðîäèòåëяì è ñûíó Åâãåíèþ, íaðèñîâaâøåìó êaðòèíêè.
Êíèãa ïîääåðæaía ïðîãðaììîé Ìèíèñòåðñòâa îáðaçîâaíèя Ðîññèéñêîé Ôåäå- ðaöèè «Ãîñóäaðñòâåííaя ïîääåðæêa ðåãèîíaëüíîé íaó÷íî-òåõíè÷åñêîé ïîëèòèêè âûñøåé øêîëû è ðaçâèòèя åå íaó÷íîãî ïîòåíöèaëa» ía 2001 ãîä.
Äîáðîæåëaòåëüíóþ è êîíñòðóêòèâíóþ êðèòèêó êíèãè íaïðaâëяéòå ïî aäðåñaì
mux@tp2055.spb.edu èëè 2:5030/1016.20@fidonet.org.
Do'stlaringiz bilan baham: |