சி ++ திசையனை எவ்வாறு பயன்படுத்துவது

How Use C Vector



அறிமுகம்

வரிசை என்பது தொடர்ச்சியான நினைவக இருப்பிடங்களில் உள்ள அதே வகையான பொருட்களின் தொடர். ஒரு வரிசை நீளத்தில் தாது குறைப்பை அதிகரிக்க முடியாது. ஒரு திசையன் ஒரு வரிசை போன்றது, ஆனால் அதன் நீளத்தை அதிகரிக்கலாம் அல்லது குறைக்கலாம். எனவே, ஒரு திசையன் வரிசையை விட பல செயல்பாடுகளைக் கொண்டுள்ளது.

சி ++ பல நூலகங்களைக் கொண்டுள்ளது, இவை அனைத்தும் சி ++ நிலையான நூலகத்தை உருவாக்குகின்றன. இந்த நூலகங்களில் ஒன்று கொள்கலன் நூலகம். ஒரு கொள்கலன் என்பது பொருட்களின் தொகுப்பாகும், மேலும் சில செயல்பாடுகளை சேகரிப்பில் செய்ய முடியும். சி ++ கொள்கலன்களை இரண்டு தொகுப்புகளாகப் பிரிக்கலாம்: வரிசை கொள்கலன்கள் மற்றும் துணை கொள்கலன்கள். வரிசை கொள்கலன்கள் திசையன், வரிசை (முன்பு விவாதிக்கப்பட்ட அதே வரிசை அல்ல), டெக்யூ, முன்னோக்கி பட்டியல் மற்றும் பட்டியல். இவை வெவ்வேறு தொகுப்புகள் (வரிசை போன்ற தரவு கட்டமைப்புகள்), மற்றும் ஒவ்வொன்றும் தனித்துவமான பரிமாற்றங்களை வழங்குகிறது.







திசையன், வரிசை, டெக்யூ, ஃபார்வர்ட்_லிஸ்ட் அல்லது பட்டியலைப் பயன்படுத்தலாமா என்பதை எந்த புரோகிராமரும் தெரிந்து கொள்ள வேண்டும். ஒரு புரோகிராமருக்கு ஒரு சாதாரண வரிசையுடன் தொடர்புடைய செயல்பாடுகளைக் காட்டிலும் அதிக செயல்பாடுகள் தேவைப்படும் ஒரு அமைப்பு தேவைப்படும்போது, ​​சாதாரண வரிசையைப் பயன்படுத்தக்கூடாது.



பணியின் வரிசையில் அடிக்கடி செருகல்கள் மற்றும் நீக்குதல்கள் இருந்தால், ஒரு பட்டியல் அல்லது முன்னோக்கிப் பட்டியல் பயன்படுத்தப்பட வேண்டும். ஒரு தொடரின் தொடக்கத்தில் அல்லது முடிவில் அடிக்கடி செருகல்கள் மற்றும் நீக்குதல்கள் சம்பந்தப்பட்டிருந்தால், ஒரு டெக்யூ பயன்படுத்தப்பட வேண்டும். இந்த வகையான செயல்பாடுகள் தேவையில்லாத போது ஒரு திசையன் பயன்படுத்தப்பட வேண்டும்.



இந்த கட்டுரை சி ++ திசையனை எவ்வாறு பயன்படுத்துவது என்பதைக் காட்டுகிறது. இந்த கட்டுரையைப் புரிந்துகொள்ள உங்களுக்கு சி ++ சுட்டிகள், குறிப்புகள் மற்றும் வரிசைகள் பற்றிய சில அறிவு தேவை.





வர்க்கம் மற்றும் பொருள்கள்

ஒரு வர்க்கம் என்பது மாறிகள் மற்றும் செயல்பாடுகளின் தொகுப்பாகும். மாறிகள் மதிப்புகள் ஒதுக்கப்படும் போது, ​​ஒரு வர்க்கம் ஒரு பொருளாக மாறும். ஒரே வர்க்கத்திற்கு கொடுக்கப்படும் வெவ்வேறு மதிப்புகள் வெவ்வேறு பொருள்களை விளைவிக்கின்றன; அதாவது, வெவ்வேறு பொருள்கள் ஒரே வர்க்கமாக இருக்கலாம் ஆனால் வெவ்வேறு மதிப்புகளைக் கொண்டிருக்கலாம். ஒரு வகுப்பிலிருந்து ஒரு பொருளை உருவாக்குவது பொருளை உடனடித்தல் என்றும் அழைக்கப்படுகிறது.

திசையன் என்ற சொல் ஒரு வகுப்பை விவரிக்கிறது. திசையனிலிருந்து உருவாக்கப்பட்ட ஒரு பொருளுக்கு புரோகிராமரால் தேர்ந்தெடுக்கப்பட்ட பெயர் உள்ளது.



வகுப்பிலிருந்து ஒரு பொருளை நிறுவ ஒரு வகுப்பிற்கு சொந்தமான செயல்பாடு தேவை. C ++ இல், அந்தச் செயல்பாட்டிற்கு வகுப்பின் பெயரின் அதே பெயர் உள்ளது. வகுப்பிலிருந்து உருவாக்கப்பட்ட (உடனடி) வெவ்வேறு பொருள்கள் ஒவ்வொன்றிற்கும் புரோகிராமரால் கொடுக்கப்பட்ட தனித்துவமான பெயர்கள் உள்ளன.

ஒரு வகுப்பிலிருந்து ஒரு பொருளை உருவாக்குதல் என்பது பொருளை உருவாக்குவதாகும்; பொருளை உடனடிப்படுத்துதல் என்றும் பொருள்.

திசையன் வகுப்பு

திசையன் வகுப்பு ஏற்கனவே வரையறுக்கப்பட்டு நூலகத்தில் உள்ளது. திசையன் வகுப்பைப் பயன்படுத்த, ஒரு புரோகிராமர் பின்வரும் முன் செயலாக்க உத்தரவுடன் கோப்பில் திசையன் தலைப்பை சேர்க்க வேண்டும்:

#சேர்க்கிறது

தலைப்பு சேர்க்கப்பட்டவுடன், அனைத்து திசையன் அம்சங்களும் (தரவு உறுப்பினர்கள் மற்றும் உறுப்பினர் செயல்பாடுகள்) அணுகலாம். முனையத்தில் (கன்சோல்) தரவை வெளியிடுவதற்கு எண்ணும் பொருளைப் பயன்படுத்த, பொருள் தலைப்பும் சேர்க்கப்பட வேண்டும். திசையனுடன் ஒரு நிரலை எழுத, குறைந்தபட்சம், பின்வரும் தலைப்புகள் சேர்க்கப்பட வேண்டும்:

#சேர்க்கிறது
#சேர்க்கிறது

ஒரு திசையனை நிறுவுதல்

intfoo[10];

மேலே foo என்ற பெயர் மற்றும் உறுப்புகளின் எண்ணிக்கை கொண்ட ஒரு வரிசையின் அறிவிப்பு 10. இது முழு எண் வரிசை. ஒரு திசையனின் அறிவிப்பு ஒத்திருக்கிறது. ஒரு திசையனுக்கு, உறுப்புகளின் எண்ணிக்கை விருப்பமானது, ஏனெனில் திசையன் நீளம் அதிகரிக்கலாம் அல்லது குறையலாம்.

நிரலின் இந்த கட்டத்தில், திசையன் வகுப்பு ஏற்கனவே நூலகத்தில் வரையறுக்கப்பட்டுள்ளது, மேலும் தலைப்பு சேர்க்கப்பட்டுள்ளது. திசையன் பின்வருமாறு நிறுவப்படலாம்:

மணி::திசையன் <int>vtr(8);

இங்கே, திசையன் சிறப்பு கட்டமைப்பாளர் செயல்பாட்டைக் கொண்டுள்ளது. திசையன் வைத்திருக்கும் தரவு வகை கோணம் அடைப்புக்குறிக்குள் எண்ணாக உள்ளது. விடிஆர் என்ற சொல் திசையனுக்கான புரோகிராமரால் தேர்ந்தெடுக்கப்பட்ட பெயர். இறுதியாக, அடைப்புக்குறிக்குள் 8, திசையன் கொண்டிருக்கும் முழு எண்களின் தற்காலிக எண்.

Std என்ற சொல் நிலையான பெயர்வெளியைக் குறிக்கிறது. இந்த சூழலில் இந்த காலத்தை இரட்டை பெருங்குடல் பின்பற்ற வேண்டும். எவரும் தங்கள் சொந்த திசையன் வகுப்பு நூலகத்தை எழுதி அதைப் பயன்படுத்தலாம். இருப்பினும், சி ++ ஏற்கனவே திசையன் உட்பட நிலையான பெயர்களுடன் ஒரு நிலையான நூலகத்தைக் கொண்டுள்ளது. நிலையான பெயரைப் பயன்படுத்த, நிலையான பெயரை எஸ்டிடி :: க்கு முன்னதாக இருக்க வேண்டும். நிலையான பெயருக்காக நிரலில் ஒவ்வொரு முறையும் std :: தட்டச்சு செய்வதைத் தவிர்க்க, நிரல் கோப்பு பின்வருமாறு தொடங்கலாம்:

#சேர்க்கிறது
#சேர்க்கிறது
நேம்ஸ்பேஸ் எஸ்டிடியைப் பயன்படுத்துதல்;

ஒரு செயல்பாட்டை ஓவர்லோட் செய்தல்

இரண்டு அல்லது அதற்கு மேற்பட்ட வெவ்வேறு செயல்பாட்டு கையொப்பங்கள் ஒரே பெயரைக் கொண்டிருக்கும் போது, ​​அந்தப் பெயர் ஓவர்லோட் செய்யப்பட்டதாகக் கூறப்படுகிறது. ஒரு செயல்பாடு அழைக்கப்படும் போது, ​​எண் மற்றும் வகை வாதங்கள் எந்த செயல்பாடு செயல்படுத்தப்படுகிறது என்பதை தீர்மானிக்கிறது.

ஒரு திசையன் கட்டுமானம்

ஒரு திசையனை உருவாக்குவது என்பது ஒரு திசையன் பொருளை நிறுவுதல் (உருவாக்குதல்) என்பதாகும். கட்டமைப்பாளர் செயல்பாடு பின்வருமாறு ஓவர்லோட் செய்யப்பட்டுள்ளது:

திசையன் பெயர்

இது நீளம் பூஜ்ஜியம் மற்றும் வகை T இன் திசையனை உருவாக்குகிறது.

திசையன்<மிதக்க>vtr;

திசையன் பெயர் (n)

இது வகை டி இன் உறுப்புகளுடன் ஒரு திசையனை உருவாக்குகிறது.

திசையன்<மிதக்க>vtr(4);

திசையன் பெயர் (n, t)

இது t க்கு துவக்கப்பட்ட n உறுப்புகளின் திசையனை உருவாக்குகிறது. பின்வரும் அறிக்கை 5 உறுப்புகளின் திசையனை உருவாக்குகிறது, அங்கு ஒவ்வொரு உறுப்புக்கும் 3.4 மதிப்பு உள்ளது:

திசையன்<மிதக்க>vtr(5, 3.4);

துவக்கத்துடன் கட்டமைத்தல்

பின்வரும் இரண்டு வழிகளில் ஒன்றில், ஒரு திசையனை உருவாக்கலாம் (உருவாக்கலாம்) மற்றும் ஒரே நேரத்தில் தொடங்கலாம்:

திசையன்<மிதக்க>vtr= {1.1, 2.2, 3.3, 4.4};

அல்லது

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};

பொருளின் பெயருக்குப் பிறகு அடைப்புக்குறிப்புகள் இல்லை என்பதை நினைவில் கொள்க. பொருளின் பெயருக்குப் பிறகு பயன்படுத்தப்படும் அடைப்புக்குறிப்புகள் ஆரம்பநிலைப் பட்டியலைக் கொண்டிருக்க வேண்டும், பின்வருமாறு:

திசையன்<மிதக்க>vtr({1.1, 2.2, 3.3, 4.4});

ஒரு திசையன் உருவாக்கப்பட்டு பின்னர் துவக்கப் பட்டியலுடன் தொடங்கலாம். இந்த வழக்கில், அடைப்புக்குறிகள் பயன்படுத்தப்படாது:

திசையன்<மிதக்க>vtr;
vtr= {1.1, 2.2, 3.3, 4.4};

திசையன் V2 (V1)

இது ஒரு நகல் கட்டமைப்பாளர். இது திசையன் V1 இன் நகலாக ஒரு திசையன் V2 ஐ உருவாக்குகிறது. பின்வரும் குறியீடு இதை விளக்குகிறது:

திசையன்<மிதக்க>vtr1(5, 3.4);
திசையன்<மிதக்க>vtr2(vtr1);

கட்டுமானத்தின் போது ஒரு திசையனை ஒதுக்குதல்

கட்டுமானத்தின் போது, ​​ஒரு வெற்று திசையன் உருவாக்கப்படலாம், மற்றொன்று அதற்கு ஒதுக்கப்படும், பின்வருமாறு:

திசையன்<மிதக்க>vtr1{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க>vtr2=vtr1;

இரண்டாவது அறிக்கை இதற்கு சமம்:

திசையன்<மிதக்க>vtr2= {1.1, 2.2, 3.3, 4.4};

const வெக்டர்

ஒரு கான்ஸ்ட் வெக்டர் என்பது ஒரு திசையன் ஆகும், அதன் கூறுகளை மாற்ற முடியாது. இந்த திசையனில் உள்ள மதிப்புகள் படிக்க மட்டுமே. உருவாக்கும் போது, ​​திசையன் பின்வருமாறு தோன்றும்:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};

இந்த திசையன் வகை, எந்த உறுப்பு சேர்க்க அல்லது நீக்க முடியாது. மேலும், எந்த மதிப்பையும் மாற்ற முடியாது.

ஐடரேட்டர் மூலம் கட்டமைத்தல்

ஒரு டெம்ப்ளேட் ஒரு தரவு வகைக்கு பொதுவான பிரதிநிதித்துவத்தை வழங்குகிறது. ஒரு கொள்கலனின் மதிப்புகள் மூலம் ஸ்கேனிங்கின் பொதுவான பிரதிநிதித்துவத்தை ஒரு இட்ரேட்டர் வழங்குகிறது. இட்ரேட்டருடன் ஒரு திசையனை உருவாக்குவதற்கான தொடரியல் பின்வருமாறு:

டெம்ப்ளேட்<வகுப்பு உள்ளீட்டாளர்>
திசையன்(முதலில் உள்ளீடு,கடைசியாக உள்ளீடு,கான்ஸ்ட்ஒதுக்கீடு செய்பவர்& =ஒதுக்கீடு செய்பவர்());

இது குறிப்பிட்ட ஒதுக்கீட்டாளரைப் பயன்படுத்தி வரம்பிற்கு [முதல், கடைசி) ஒரு திசையனை உருவாக்குகிறது, இது இந்த கட்டுரையில் பின்னர் விவாதிக்கப்படும்.

ஒரு திசையனை அழித்தல்

ஒரு திசையனை அழிக்க, வெறுமனே அதன் எல்லைக்கு வெளியே சென்று அழிக்க தானாகவே கையாளப்படும்.

திசையன் திறன்

size_type திறன் () const

திசைமாற்றம் தேவைப்படாமல் திசையன் வைத்திருக்கக்கூடிய மொத்த உறுப்புகளின் எண்ணிக்கை திறன் உறுப்பினர் செயல்பாட்டால் திருப்பித் தரப்படுகிறது. இதற்கான குறியீடு பிரிவு பின்வருமாறு:

திசையன்<மிதக்க>vtr(4);
intஒன்றின் மீது=vtr.திறன்();
செலவு<<ஒன்றின் மீது<< ' n';

வெளியீடு 4 ஆகும்.

இருப்பு (n)

நினைவக இடம் எப்போதும் இலவசமாக கிடைக்காது. கூடுதல் இடத்தை முன்கூட்டியே முன்பதிவு செய்யலாம். பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

திசையன்<மிதக்க>vtr(4);
vtr.இருப்பு(6);
செலவு<<vtr.திறன்() << ' n';

வெளியீடு 6. எனவே, ஒதுக்கப்பட்ட கூடுதல் இடம் 6 - 4 = 2 உறுப்புகள். செயல்பாடு வெற்றிடத்தைத் தருகிறது.

அளவு () const noexcept

இது திசையனில் உள்ள உறுப்புகளின் எண்ணிக்கையை வழங்குகிறது. பின்வரும் குறியீடு இந்த செயல்பாட்டை விளக்குகிறது:

திசையன்<மிதக்க>vtr(4);
மிதக்ககள்=vtr.அளவு();
செலவு<<கள்<< ' n';

வெளியீடு 4 ஆகும்.

பொருந்துவதற்கு ஏற்றவாறு சுருக்குதல்()

ரிசர்வ் () செயல்பாட்டைக் கொண்ட ஒரு திசையனுக்கு கூடுதல் திறனைக் கொடுத்த பிறகு, திசையனை அதன் அசல் அளவுக்கு ஏற்றவாறு அளவிட முடியும். பின்வரும் குறியீடு இதை விளக்குகிறது:

திசையன்<மிதக்க>vtr(4);
vtr.இருப்பு(6);
vtr.பொருந்துவதற்கு ஏற்றவாறு சுருக்குதல்();
intகள்=vtr.அளவு();
செலவு<<கள்<< ' n';

வெளியீடு 4 அல்ல 6. செயல்பாடு வெற்றிடத்தை அளிக்கிறது.

அளவை (sz), மறுஅளவிடு (sz, c)

இது திசையனின் அளவை மாற்றுகிறது. புதிய அளவு பழைய அளவை விட சிறியதாக இருந்தால், இறுதியில் உள்ள உறுப்புகள் அழிக்கப்படும். புதிய அளவு நீளமாக இருந்தால், இறுதியில் சில இயல்புநிலை மதிப்பு சேர்க்கப்படும். குறிப்பிட்ட மதிப்பைச் சேர்க்க, இரண்டு வாதங்களுடன் மறுஅளவிடுதல் () செயல்பாட்டைப் பயன்படுத்தவும். பின்வரும் குறியீடு பிரிவு இந்த இரண்டு செயல்பாடுகளின் பயன்பாட்டை விளக்குகிறது:

திசையன்<மிதக்க>vtr1{1.1, 2.2, 3.3, 4.4};
vtr1.மறுஅளவிடு(2);
செலவு<< Vtr1 இன் புதிய அளவு: ' <<vtr1.அளவு() << ' n';
திசையன்<மிதக்க>vtr2{1.1, 2.2};
vtr2.மறுஅளவிடு(4, 8.8);
செலவு<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

வெளியீடு பின்வருமாறு:

Vtr1: 2 இன் புதிய அளவு
vtr2: 1.1 2.2 8.8 8.8

செயல்பாடுகள் வெற்றிடமாகத் திரும்பும்.

காலியாக () கான்ஸ்ட்

திசையனில் எந்த உறுப்புகளும் இல்லை என்றால் இந்த செயல்பாடு 1 க்கு உண்மை மற்றும் திசையன் காலியாக இருந்தால் தவறான 0 க்கு கொடுக்கிறது. ஒரு மிதவை மதிப்பு இல்லாமல் மிதவை போன்ற ஒரு குறிப்பிட்ட வகை தரவுகளுக்கு ஒரு திசையன் 4 இடங்களைக் கொண்டிருந்தால், அந்த திசையன் காலியாக இல்லை. பின்வரும் குறியீடு இதை விளக்குகிறது:

திசையன்<மிதக்க>vtr;
செலவு<<vtr.காலியாக() << ' n';
திசையன்<மிதக்க>vt(4);
செலவு<<அதனால்காலியாக() << ' n';

திசையன்<மிதக்க>v(4,3.5);
செலவு<<v.காலியாக() << ' n';

வெளியீடு பின்வருமாறு:

1
0
0

திசையன் உறுப்பு அணுகல்

ஒரு திசையன் ஒரு வரிசை போல துணை-ஸ்கிரிப்ட் (அட்டவணைப்படுத்தப்பட்ட). குறியீட்டு எண்ணிக்கை பூஜ்ஜியத்திலிருந்து தொடங்குகிறது.

திசையன் பெயர் [i]

செயல்பாட்டு திசையன் பெயர் [i] i இல் உள்ள உறுப்புக்கான குறிப்பை வழங்குகிறதுவதுதிசையனின் குறியீடு மேலே உள்ள திசையனுக்கான பின்வரும் குறியீடு 3.3 ஐ வெளியிடுகிறது:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr[2];
செலவு<<fl<< ' n';

திசையன் பெயர் [i] const

திசையன் ஒரு நிலையான திசையனாக இருக்கும்போது வெக்டர் நேம் [i] க்குப் பதிலாக ஆபரேஷன் வெக்டார் நேம் [i] const இயக்கப்படுகிறது. இந்த செயல்பாடு பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr[2];
செலவு<<fl<< ' n';

வெளிப்பாடு i க்கு ஒரு நிலையான குறிப்பை வழங்குகிறதுவதுதிசையனின் உறுப்பு.

துணை மதிப்புடன் ஒரு மதிப்பை ஒதுக்குதல்

மாறாத திசையனுக்கு ஒரு மதிப்பை பின்வருமாறு ஒதுக்கலாம்:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
vtr[2] = 8.8;
செலவு<<vtr[2] << ' n';

வெளியீடு 8.8.

vectorName.at (i)

vectorName.at (i) திசையன் பெயர் [i] போன்றது, ஆனால் vectorName.at (i) மிகவும் நம்பகமானது. இந்த திசையன் எவ்வாறு பயன்படுத்தப்பட வேண்டும் என்பதை பின்வரும் குறியீடு காட்டுகிறது:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.மணிக்கு(2);
செலவு<<fl<< ' n';
மணிக்கு()ஒரு திசையன் உறுப்பினர்செயல்பாடு.

vectorName.at (i) const

vectorName.at (i) const என்பது vectorName [i] const போன்றது, ஆனால் vectorName.at (i) const மிகவும் நம்பகமானது. திசையன் ஒரு நிலையான திசையனாக இருக்கும்போது vectorName.at (i) க்கு பதிலாக vectorName.at (i) const செயல்படுத்தப்படுகிறது. இந்த திசையன் பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.மணிக்கு(2);
செலவு<<fl<< ' n';
மணிக்கு() கான்ஸ்ட்ஒரு திசையன் உறுப்பினர்செயல்பாடு.

At () செயல்பாட்டுடன் ஒரு மதிப்பை ஒதுக்குதல்

பின்வரும் (at) செயல்பாட்டைக் கொண்டு ஒரு மாறிலி அல்லாத திசையனுக்கு ஒரு மதிப்பை ஒதுக்கலாம், பின்வருமாறு:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
vtr.மணிக்கு(2) = 8.8;
செலவு<<vtr[2] << ' n';

வெளியீடு 8.8.

சப்-ஸ்கிரிப்டிங்கில் சிக்கல்

சப்-ஸ்கிரிப்டிங் (இன்டெக்ஸிங்) பிரச்சனை என்னவென்றால், இன்டெக்ஸ் வரம்பிற்கு வெளியே இருந்தால், பூஜ்யம் திரும்பக் கொடுக்கப்படலாம் அல்லது ரன் டைமில் பிழை வழங்கப்படலாம்.

முன் ()

இது உறுப்பை அகற்றாமல் திசையனின் முதல் உறுப்புக்கான குறிப்பை வழங்குகிறது. பின்வரும் குறியீட்டின் வெளியீடு 1.1 ஆகும்.

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.முன்();
செலவு<<fl<< ' n';

திசையன் இருந்து உறுப்பு நீக்கப்படவில்லை.

முன் () const

திசையன் கட்டுமானம் கான்ஸ்டால் முன்னதாக இருக்கும்போது, ​​முன் () கான்ஸ்ட்ரெஷனுக்கு முன்னால் () க்கு பதிலாக செயல்படுத்தப்படுகிறது. இது பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.முன்();
செலவு<<fl<< ' n';

ஒரு நிலையான குறிப்பு திருப்பி அனுப்பப்பட்டது. திசையன் இருந்து உறுப்பு நீக்கப்படவில்லை.

மீண்டும்()

இது உறுப்பை அகற்றாமல் திசையனின் கடைசி உறுப்புக்கான குறிப்பை வழங்குகிறது. பின்வரும் குறியீட்டின் வெளியீடு 4.4 ஆகும்.

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.மீண்டும்();
செலவு<<fl<< ' n';

பின் () const

திசையன் கட்டுமானத்திற்கு முன்னால் கான்ஸ்டால், வெளிப்பாடு (() கான்ஸ்ட்டுக்குப் பதிலாக மீண்டும் () இது பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
மிதக்கfl=vtr.மீண்டும்();
செலவு<<fl<< ' n';

ஒரு நிலையான குறிப்பு திருப்பி அனுப்பப்பட்டது. திசையன் இருந்து உறுப்பு நீக்கப்படவில்லை.

திசையன் தரவு அணுகல்

தரவு () தவிர; தரவு () const noexcept;

இவற்றில் ஏதேனும் [தரவு (), தரவு () + அளவு ()) சரியான வரம்பாக இருக்கும் ஒரு சுட்டிக்காட்டியை வழங்குகிறது.

இது பின்னர் கட்டுரையில் விரிவாக விவாதிக்கப்படும்.

திருப்பி அனுப்பும் பொருட்கள் மற்றும் திசையன்

ஒரு இட்ரேட்டர் ஒரு சுட்டிக்காட்டி போன்றது ஆனால் ஒரு சுட்டிக்காட்டி விட அதிக செயல்பாடு உள்ளது.

தொடக்கம் () தவிர

பின்வரும் குறியீட்டு பிரிவில் உள்ளதைப் போல, திசையனின் முதல் உறுப்பைச் சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::இட்ரேட்டர்iter=vtr.தொடங்க();
செலவு<< *iter<< ' n';

வெளியீடு 1.1 ஆகும். ஐடரேட்டரைப் பெறும் அறிவிப்பு அறிவிக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்க. ஒரு சுட்டிக்காட்டி குறைக்கப்பட்டதைப் போலவே மதிப்பைப் பெறுவதற்கு திரும்பும் வெளிப்பாட்டில் இட்ரேட்டர் குறிப்பிடப்படவில்லை.

தொடக்கம் () const noexcept;

திசையனின் முதல் உறுப்பைச் சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. திசையன் கட்டுமானத்திற்கு முன்னால் கான்ஸ்டால், வெளிப்பாடு ((const) தொடங்குவதற்கு பதிலாக செயல்படுத்தப்படுகிறது. இந்த நிபந்தனையின் கீழ், திசையனுடன் தொடர்புடைய உறுப்பை மாற்ற முடியாது. இது பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::const_iteratoriter=vtr.தொடங்க();
செலவு<< *iter<< ' n';

வெளியீடு 1.1 ஆகும். திரும்பப் பெறப்பட்ட இட்ரேட்டரைப் பெற வெறும் இட்ரேட்டருக்குப் பதிலாக இம்முறை const_iterator பயன்படுத்தப்படுகிறது என்பதை நினைவில் கொள்க.

முடிவு () தவிர

திசையனின் கடைசி உறுப்புக்கு அப்பால் உடனடியாக சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::இட்ரேட்டர்iter=vtr.முடிவு();
செலவு<< *iter<< ' n';

வெளியீடு 0 ஆகும், இது அர்த்தமற்றது, ஏனெனில் கடைசி உறுப்புக்கு அப்பால் உறுதியான உறுப்பு இல்லை.

முடிவு () const noexcept

திசையனின் கடைசி உறுப்புக்கு அப்பால் உடனடியாக சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. திசையன் கட்டுமானம் கான்ஸ்டால் முன்னதாக இருக்கும்போது, ​​வெளிப்பாடு முடிவு () கான்ஸ்ட் முடிவுக்கு பதிலாக செயல்படுத்தப்படுகிறது. பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::const_iteratoriter=vtr.முடிவு();
செலவு<< *iter<< ' n';

வெளியீடு 0. குறிப்பு_இடரேட்டர் திரும்பப்பெற்ற இட்ரேட்டரைப் பெறுவதற்கு வெறும் இட்ரேட்டருக்குப் பதிலாக இம்முறை பயன்படுத்தப்பட்டுள்ளது.

தலைகீழ் திருப்புதல்

முதல் உறுப்புக்கு சற்று முன்னால் முடிவடையும் ஒரு இட்ரேட்டர் இருக்க முடியும்.

rbegin () தவிர

திசையனின் கடைசி உறுப்பை சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது, பின்வரும் குறியீடு பிரிவில் உள்ளது போல்:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::தலைகீழ்_அறிவிப்பான்பின்புறம்=vtr.தொடங்கவும்();
செலவு<< *பின்புறம்<< ' n';

வெளியீடு 4.4 ஆகும்.

ரிவர்ஸ் இட்ரேட்டரைப் பெறும் அறிவிப்பு அறிவிக்கப்பட்டுள்ளது என்பதை நினைவில் கொள்க. ஒரு சுட்டிக்காட்டி குறைக்கப்பட்டதைப் போலவே மதிப்பைப் பெறுவதற்கு திரும்பும் வெளிப்பாட்டில் இட்ரேட்டர் குறிப்பிடப்படவில்லை.

rbegin () const noexcept;

திசையனின் கடைசி உறுப்பைச் சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. திசையன் கட்டுமானம் கான்ஸ்டால் முன்னதாக இருக்கும்போது, ​​rbegin () க்கு பதிலாக rbegin () const என்ற வெளிப்பாடு செயல்படுத்தப்படுகிறது. இந்த நிபந்தனையின் கீழ், திசையனுடன் தொடர்புடைய உறுப்பை மாற்ற முடியாது. இந்த அம்சம் பின்வரும் குறியீட்டில் பயன்படுத்தப்படுகிறது:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::const_reverse_iteratorபின்புறம்=vtr.தொடங்கவும்();
செலவு<< *பின்புறம்<< ' n';

வெளியீடு 4.4 ஆகும்.

திரும்பப்பெற்ற இட்ரேட்டரைப் பெற, தலைகீழ்_இடரேட்டருக்குப் பதிலாக, இந்த முறை const_reverse_iterator பயன்படுத்தப்பட்டுள்ளது என்பதை நினைவில் கொள்க.

வழங்க () தவிர

திசையனின் முதல் உறுப்புக்கு சற்று முன்னால் சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::தலைகீழ்_அறிவிப்பான்பின்புறம்=vtr.செய்கிறது();
செலவு<< *பின்புறம்<< ' n';

வெளியீடு 0 ஆகும், இது அர்த்தமற்றது, ஏனெனில் முதல் உறுப்புக்கு சற்று முன் உறுதியான உறுப்பு இல்லை.

render () const noexcept

திசையனின் முதல் உறுப்புக்கு சற்று முன்னால் சுட்டிக்காட்டும் ஒரு ஐடரேட்டரை வழங்குகிறது. திசையன் கட்டுமானம் கான்ஸ்டால் முன்னதாக இருக்கும்போது, ​​ரெண்ட் () க்கு பதிலாக ரெண்ட் () கான்ஸ்ட்ரேஷன் வெளிப்படும். பின்வரும் குறியீட்டுப் பகுதியைக் கவனியுங்கள்:

கான்ஸ்ட்திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க> ::const_reverse_iteratorபின்புறம்=vtr.செய்கிறது();
செலவு<< *பின்புறம்<< ' n';

வெளியீடு 0 ஆகும்.

திரும்பப்பெற்ற இட்ரேட்டரைப் பெற, தலைகீழ்_இடரேட்டருக்குப் பதிலாக, இந்த முறை const_reverse_iterator பயன்படுத்தப்பட்டுள்ளது என்பதை நினைவில் கொள்க.

திசையன் மாற்றிகள்

திசையனை மாற்றியமைக்கும் மாடிஃபையர் ஒரு இட்ரேட்டரை எடுக்கலாம் அல்லது திரும்பக் கொடுக்கலாம்.

a. மாற்று (p, args)

Std :: முன்னோக்கி (args) கொண்டு கட்டப்பட்ட T வகை பொருளை ... p க்கு முன் செருகுகிறது.

விவரங்களுக்கு - பிறகு பார்க்கவும்

செருகவும் (iteratorPosition, value)

திசையனின் இட்ரேட்டர் நிலையில் மதிப்பின் நகலைச் செருகுகிறது. நகல் வைக்கப்பட்டிருக்கும் திசையனில் மறுசீரமைப்பாளரை (நிலை) வழங்குகிறது. பின்வரும் குறியீடு மதிப்பு எங்கு வைக்கப்பட்டுள்ளது என்பதைக் காட்டுகிறது:

திசையன்<int>vtr{10, இருபது, 30, 40};
திசையன்<int> ::இட்ரேட்டர்iter=vtr.தொடங்க();
++iter;
++iter;
vtr.செருக(iter, 25);
செலவு<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3] << ' n';

வெளியீடு: 20 25 30.

ஒரு சுட்டிக்காட்டி போல இட்ரேட்டர் மேம்பட்டது (அதிகரித்தது).

பின்வரும் குறியீட்டை விளக்குவது போல், ஒரு தொடக்க பட்டியலையும் செருகலாம்:

திசையன்<int>vtr{10, இருபது, 30, 40};
திசையன்<int> ::இட்ரேட்டர்iter=vtr.தொடங்க();
++iter;
++iter;
vtr.செருக(iter, {25, 28});

செலவு<<vtr[1] << '' <<vtr[2]<< '
'
<<vtr[3]<< '' <<vtr[4] << ' n';

வெளியீடு: 20 25 28 30.

அழி (நிலை)

ஐடரேட்டரால் சுட்டிக்காட்டப்பட்ட நிலையில் உள்ள ஒரு தனிமத்தை அகற்றி, பின்னர் ஐடரேட்டர் நிலையை வழங்கும். பின்வரும் குறியீடு இதை விளக்குகிறது:

திசையன்<int>vtr{10, இருபது, 30, 40};
திசையன்<int> ::இட்ரேட்டர்iter=vtr.தொடங்க();
++iter;
++iter;
vtr.அழி(iter);
செலவு<<vtr[0] << '' <<vtr[1] << '
'
<<vtr[2]<< ' n';

வெளியீடு: 10 20 40

புஷ்_பேக் (டி), புஷ்_பேக் (ஆர்வி)

திசையனின் முடிவில் ஒரு தனிமத்தைச் சேர்க்கப் பயன்படுகிறது. பின்வருமாறு push_back (t) ஐப் பயன்படுத்தவும்:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
vtr.பின்னால் தள்ளு(5.5);
மிதக்கfl=vtr[4];
செலவு<<fl<< ' n';

வெளியீடு 5.5.

பின்னால் தள்ளு(ஆர்.வி): -பிறகு பார்க்கலாம்.

pop_back ()

கடைசி உறுப்பைத் திரும்பப் பெறாமல் நீக்குகிறது. திசையனின் அளவு 1. குறைக்கப்படுகிறது. பின்வரும் குறியீடு இதை விளக்குகிறது:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
vtr.pop_back();
மிதக்ககள்=vtr.அளவு();
செலவு<<கள்<< ' n';

வெளியீடு 3 ஆகும்.

a. swap (b)

பின்வரும் குறியீட்டு பிரிவில் விளக்கப்பட்டுள்ளபடி இரண்டு திசையன்களை மாற்றலாம்:

திசையன்<மிதக்க>vtr1{1.1, 2.2, 3.3, 4.4};
திசையன்<மிதக்க>vtr2{10, இருபது};
vtr1.இடமாற்றம்(vtr2);
செலவு<< 'vtr1:'<<vtr1[0] <<''<<vtr1[1] <<'
'
<<vtr1[2] <<''<<vtr1[3] << ' n';

செலவு<< 'vtr2:'<<vtr2[0] <<''<<vtr2[1] <<'
'
<<vtr2[2] <<''<<vtr2[3] << ' n';

வெளியீடு:

vtr1: 10 இருபது 0 0
vtr2: 1.1 2.2 3.3 4.4

தேவைப்பட்டால், ஒரு திசையனின் நீளம் அதிகரிக்கப்படும் என்பதை நினைவில் கொள்க. மேலும், மாற்றீடுகள் இல்லாத மதிப்புகள் சில இயல்புநிலை மதிப்புகளால் மாற்றப்படுகின்றன.

தெளிவான ()

திசையனிலிருந்து அனைத்து உறுப்புகளையும் நீக்குகிறது, பின்வரும் குறியீடு பிரிவு விளக்குகிறது:

திசையன்<மிதக்க>vtr{1.1, 2.2, 3.3, 4.4};
vtr.தெளிவான();
செலவு<<vtr.அளவு() << ' n';

வெளியீடு 0 ஆகும்.

வெக்டர்களுக்கான சமத்துவம் மற்றும் தொடர்புடைய ஆபரேட்டர்கள்

== ஆபரேட்டர்

இரண்டு திசையன்களும் ஒரே அளவு மற்றும் அதனுடன் தொடர்புடைய உறுப்புகள் சமமாக இருந்தால் உண்மைக்கு 1 ஐ வழங்குகிறது; இல்லையெனில், அது பொய்யாக 0 ஐ வழங்குகிறது. உதாரணத்திற்கு:

திசையன்<int>யு{1, 2, 3};
திசையன்<int>வி{4, 5, 6};
பூல் பிஎல்=யு==வி;
செலவு<<bl<< ' n';

வெளியீடு 0 ஆகும்.

தி! = ஆபரேட்டர்

இரண்டு திசையன்களும் ஒரே அளவு மற்றும்/அல்லது அதனுடன் தொடர்புடைய உறுப்புகள் சமமாக இல்லை என்றால் உண்மைக்கு 1 ஐ அளிக்கிறது; இல்லையெனில், அது பொய்யாக 0 ஐ வழங்குகிறது. உதாரணத்திற்கு:

திசையன்<int>யு{1, 2, 3};
திசையன்<int>வி{4, 5, 6};
பூல் பிஎல்=யு! =வி;
செலவு<<bl<< ' n';

வெளியீடு 1 ஆகும்.

தி

முதல் திசையன் இரண்டாவது திசையனின் ஆரம்ப துணைக்குழுவாக இருந்தால், 1 சமமாக மற்றும் இரண்டு சம பாகங்களின் உறுப்புகள் ஒரே மாதிரியாகவும் ஒரே வரிசையில் இருக்கும். இரண்டு திசையன்களும் ஒரே அளவு மற்றும் இடமிருந்து வலமாக நகர்ந்து முதல் திசையனில் ஒரு தனிமம் எதிர்கொண்டால், அது இரண்டாவது திசையனுடன் தொடர்புடைய உறுப்புக்கும் குறைவாக இருந்தால், 1 இன்னும் திருப்பித் தரப்படும். இல்லையெனில், பொய்யான 0 திருப்பித் தரப்படும். உதாரணத்திற்கு:

திசையன்<int>யு{3, 1, 1};
திசையன்<int>வி{3, 2, 1};
பூல் பிஎல்=யு<வி;
செலவு<<bl<< ' n';

வெளியீடு 1 ஆகும்.

> ஆபரேட்டர்

திரும்புகிறது! (யு

தி<= Operator

U ஐ அளிக்கிறது<= V, where U is the first vector and V is the second vector, according to the above definitions.

> = ஆபரேட்டர்

திரும்புகிறது! (யு<= V), where U is the first vector and V is the second vector, according to the above definitions.

முடிவுரை

ஒரு திசையன் ஒரு வரிசை கொள்கலனுக்கு ஒரு எடுத்துக்காட்டு. ஒரு திசையன் என்பது சாதாரண வரிசையின் ஒரு சிறந்த வடிவமாகும் மற்றும் இது ஒரு வகுப்பிலிருந்து உடனடியாக வழங்கப்படுகிறது. திசையன்களின் கீழ் வகைப்படுத்தப்பட்ட முறைகள் உள்ளன: கட்டுமானம் மற்றும் ஒதுக்கீடு, திறன், உறுப்பு அணுகல், தரவு அணுகல், மறுசீரமைப்பாளர்கள், மாற்றியமைப்பாளர்கள் மற்றும் எண்ணியல் ஓவர்லோட் செய்யப்பட்ட ஆபரேட்டர்கள்.

பட்டியல், முன்னோக்கி பட்டியல் மற்றும் வரிசை என்று அழைக்கப்படும் மற்ற வரிசை கொள்கலன்கள் உள்ளன. பணியின் வரிசையில் அடிக்கடி செருகல்கள் மற்றும் நீக்குதல்கள் இருந்தால், ஒரு பட்டியல் அல்லது முன்னோக்கிப் பட்டியல் பயன்படுத்தப்பட வேண்டும். பணியின் ஆரம்பத்தில் அல்லது முடிவில் அடிக்கடி செருகல்கள் மற்றும் நீக்குதல்கள் இருந்தால், ஒரு டெக் பயன்படுத்தப்பட வேண்டும். எனவே, இந்த வகையான செயல்பாடுகள் முக்கியமில்லாத போது மட்டுமே திசையன்கள் பயன்படுத்தப்பட வேண்டும்.