செயல்பாட்டு C ++ இலிருந்து திரும்பும் வரிசை

Return Array From Function C



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

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

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







Int *செயல்பாடு ()



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







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

Int*சுட்டிக்காட்டி=செயல்பாடு();

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



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

$g ++ -அல்லதுfile1 file1.c
$./கோப்பு 1

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

டைனமிகல் ஒதுக்கப்பட்ட வரிசையை சுட்டிகளைப் பயன்படுத்தி திரும்பவும்

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

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

Int*செயல்பாடு()

செயல்பாட்டு அறிவிப்புக்குப் பிறகு, வரிசைகள் மாறும் வகையில் அறிவிக்கப்படுகின்றன:

Int*வரிசை= புதிய int [100];

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

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

Int*சுட்டிக்காட்டி=செயல்பாடு();

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

கட்டமைப்புகளைப் பயன்படுத்தி வரிசை திரும்பவும்

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

கட்டமைப்பு மாதிரி
{
Int arr[100];
};

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

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

இப்போது, ​​முக்கிய நிரலை நோக்கி நகர்ந்து, இதன் மூலம் வரிசையை அணுக ஒரு பொருளை உருவாக்கியுள்ளோம்:

அமைப்பு மாதிரி x;

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

எக்ஸ்=செயல்பாடு(என்);

ஃபார் லூப்பைப் பயன்படுத்தி நாம் காட்சியைப் பெறுவோம். முக்கிய நிரலின் தொடக்கத்தில் அறிவிக்கப்பட்ட பொருள் மூலம் மதிப்புகள் காட்டப்படும்:

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

ஸ்டேடியைப் பயன்படுத்தி வரிசை திரும்பவும்

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

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

வரிசை<int,10>செயல்பாடு()

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

அர்=செயல்பாடு();

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

திசையன் கொள்கலன் மூலம் வரிசையை திரும்பவும்

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

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

திசையன்<int>பெருக்கல் வரிசை இரண்டு(கான்ஸ்ட்திசையன்<int> *அர்)

செயல்பாடு tmp.push_back () செயல்பாட்டைப் பயன்படுத்தி வரிசையின் உறுப்புகளை இரண்டால் பெருக்கும். பிறகு, tmp ஐ திரும்பவும். ஒரு தானியங்கி-வகை மாறி செயல்பாட்டின் வரிசையின் மதிப்புகளை ஏற்றுக்கொள்ளும். வரிசையில் அதில் உள்ள பொருட்கள் உள்ளன.

வெளியீடு திசையன் கொள்கலனின் செயல்பாட்டைக் காட்டுகிறது.

முடிவுரை

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