Задача этой книги дать краткое и четкое изложение языка С++ в соответствии со стандар том iso/iec 14882. Она предназначена для студентов, изучающих язык «с нуля»



Download 2 Mb.
bet175/232
Sana29.03.2022
Hajmi2 Mb.
#516205
TuriЗадача
1   ...   171   172   173   174   175   176   177   178   ...   232
Bog'liq
Т. А. Павловская C C . Программирование на языке высокого уровня

Векторы (vector)


Äëя ñîçäaíèя âåêòîða ìîæíî âîñïîëüçîâaòüñя ñëåäóþùèìè nîíñòðónòîðaìè
(ïðèâåäåía óïðîùåííaя çaïèñü):
expliCit veCtOr(); // 1
expliCit veCtOr(size_type n, COnst T& value = T()); // 2 template // 3
veCtOr(InputIter first, InputIter last);
veCtOr(COnst veCtOr& x); // 4
Êëþ÷åâîå ñëîâî expliCit èñïîëüçóåòñя äëя òîãî, ÷òîáû ïðè ñîçäaíèè îáúåêòa ça- ïðåòèòü âûïîëíяåìîå íåяâíî ïðåîáðaçîâaíèå ïðè ïðèñâaèâaíèè çía÷åíèя äðóãî- ãî òèïa (ñì. òaêæå ñ. 197).
Êîíñòðóêòîð 1 яâëяåòñя êîíñòðóêòîðîì ïî óìîë÷aíèþ.
Êîíñòðóêòîð 2 ñîçäaåò âåêòîð äëèíîé n è çaïîëíяåò åãî îäèíaêîâûìè ýëåìåíòa- ìè — êîïèяìè value.
Ïîñêîëüêó èçìåíåíèå ðaçìåða âåêòîða îáõîäèòñя äîðîãî, ïðè åãî ñîçäaíèè çaäa- âaòü ía÷aëüíûé ðaçìåð âåñüìa ïîëåçíî. Ïðè ýòîì äëя âñòðîåííûõ òèïîâ âûïîë- íяåòñя èíèöèaëèçaöèя êaæäîãî ýëåìåíòa çía÷åíèåì value. Åñëè îíî íå óê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íèя.

Êîíñòðóêòîð 3 ñîçäaåò âåêòîð ïóòåì êîïèðîâaíèя óêaçaííîãî ñ ïîìîùüþ èòåða- òîðîâ äèaïaçîía ýëåìåíòîâ. Òèï èòåðaòîðîâ äîëæåí áûòü «äëя ÷òåíèя».


Êîíñòðóêòîð 4 яâëяåòñя êîíñòðóêòîðîì êîïèðîâaíèя. Ïðèìåðû êîíñòðóêòîðîâ:
// Cîçäaåòñя âåêòîð èç 10 ðaâíûõ åäèíèöå ýëåìåíòîâ:
veCtOr v2 (10, 1);
// Cîçäaåòñя âåêòîð, ðaâíûé âåêòîðó v1:
veCtOr v4 (v1);
// Cîçäaåòñя âåêòîð èç äâóõ ýëåìåíòîâ, ðaâíûõ ïåðâûì äâóì ýëåìåíòaì v1: veCtOr v3 (v1.begin(), v1.begin() + 2);
// Cîçäaåòñя âåêòîð èç 10 îáúåêòîâ êëañña mOnstr (ñì. ñ. 183)
// (ðaáîòaåò êîíñòðóêòîð ïî óìîë÷aíèþ):
veCtOr m1 (10);
// Cîçäaåòñя âåêòîð èç 5 îáúåêòîâ êëañña mOnstr ñ çaäaííûì èìåíåì
// (ðaáîòaåò êîíñòðóêòîð ñ ïaðaìåòðîì Char*):
veCtOr m2 (5, mOnstr("Âañя"));
 øaáëîíå veCtOr îïðåäåëåíû îïåðaöèя ïðèñâaèâaíèя è ôóíêöèя nîïèðîâaíèя:
veCtOr& OperatOr=(COnst veCtOr& x); vOid assign(size_type n, COnst T& value); template
vOid assign(InputIter first, InputIter last);
Çäåñü ÷åðåç Ò îáîçía÷åí òèï ýëåìåíòîâ âåêòîða. Âåêòîða ìîæíî ïðèñâaèâaòü äðóã äðóãó òî÷íî òaê æå, êaê ñòaíäaðòíûå òèïû äaííûõ èëè ñòðîêè. Ïîñëå ïðèñâaèâa- íèя ðaçìåð âåêòîða ñòaíîâèòñя ðaâíûì íîâîìó çía÷åíèþ, âñå ñòaðûå ýëåìåíòû óäaëяþòñя.
Ôóíêöèя assign â ïåðâîé ôîðìå aíaëîãè÷ía ïî äåéñòâèþ êîíñòðóêòîðó 2, íî ïðè- ìåíяåòñя ê ñóùåñòâóþùåìó îáúåêòó. Ôóíêöèя assign âî âòîðîé ôîðìå ïðåä- íaçía÷åía äëя ïðèñâaèâaíèя ýëåìåíòaì âûçûâaþùåãî âåêòîða çía÷åíèé èç äèa- ïaçîía, îïðåäåëяåìîãî èòåðaòîðaìè first è last, aíaëîãè÷íî êîíñòðóêòîðó 3, íaïðèìåð:
veCtOr v1, v2;
// Ïåðâûì 10 ýëåìåíòaì âåêòîða v1 ïðèñâaèâaåòñя çía÷åíèå 1: v1.assign(10,1);
// Ïåðâûì 3 ýëåìåíòaì âåêòîða v2 ïðèñâaèâaþòñя çía÷åíèя v2[5], v2[6], v2[7]: v2.assign(v2.begin() + 5, v2.begin() + 8);

Download 2 Mb.

Do'stlaringiz bilan baham:
1   ...   171   172   173   174   175   176   177   178   ...   232




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