Template (Function Template) Part II (Lecture 55)-MNoPTVrsXZs 46.2 KB
Newer Older
Vandan Mujadia's avatar
update  
Vandan Mujadia committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
  ప్రోగ్రామింగ్ C ++ లో మాడ్యూల్ 39 కు స్వాగతం.
 మేము టెంప్లేట్లు(templates) లేదా జెనరిక్(generic) ప్రోగ్రామింగ్, C ++ లో మెటా ప్రోగ్రామింగ్ గురించి చర్చించాము, ఇక్కడ మేము కొన్ని విధులు, టెంప్లేట్ చేయబడిన ఫంక్షన్లు, ఒకటి లేదా అంతకంటే ఎక్కువ రకం వేరియబుల్స్తో(variables) పారామీటర్డ్(parameterized) ఫంక్షన్లను వ్రాయవచ్చు.
 తదనుగుణంగా వివిధ పారామిరైజ్డ్ రకాలను ఎక్ష్ప్లిసిట్(explicit) లేదా ఇంప్లిసిట్ వేర్వేరు ఫంక్షన్ పొందవచ్చు ఓవర్లోడ్(overload) గా ఉత్పత్తి మరియు పొందవచ్చు.
 మేము మునుపటి మాడ్యూల్‌లో లోతును చూశాము. 
 మేము ఇంతకుముందు టెంప్లేట్ చేసిన రూపంలో వ్రాసిన మాక్స్ ఫంక్షన్ (ఫంక్షన్) యొక్క ఉదాహరణను లోతుగా చూశాము, దానిని పూర్ణాంకం మరియు డబుల్ కోసం ఉపయోగించాము మరియు తరువాత మేము దానిని సి తీగలకు ప్రత్యేకత చేసాము మరియు తరువాత ఈ వినియోగదారు కోసం కూడా నిర్వచించమని చూపించాము కాంప్లెక్స్ వంటి రకాలు. 
 ప్రస్తుత మాడ్యూల్‌లో, మేము దానిపై కొనసాగుతాము మరియు మా దృష్టి C ++ లోని ఇతర రకాల టెంప్లేట్‌లపై ఉంటుంది, వీటిని క్లాస్ టెంప్లేట్లు అంటారు. 
 ఇది రూపురేఖలు మరియు మేము చర్చించే నీలం విభాగం మీ స్క్రీన్ యొక్క ఎడమ వైపున అందుబాటులో ఉంటుంది. 
 ఇది శీఘ్ర పునరావృతం కోసం మాత్రమే, ఒక టెంప్లేట్ అంటే ఏమిటో మనం చూస్తాము మరియు దానిలో కొంత భాగాన్ని చూశాము. 
 మరియు ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ సందర్భంలో, ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ప్రాథమికంగా అల్గోరిథంలో కోడ్ పునర్వినియోగం అని మేము చూశాము. 
 కాబట్టి, మీకు సెర్చ్ అల్గోరిథం ఉంది, మాకు సార్టింగ్ అల్గోరిథం ఉంది, మాకు కనీస అల్గోరిథం ఉంది, మాకు సగటు అల్గోరిథం ఉంది. 
 C ++ లో, దీని కోసం కోడ్ ప్రత్యేకంగా మూలకం రకం ఆధారంగా తిరిగి ఇవ్వబడుతుంది. 
 ఏదేమైనా, సాధారణంగా అల్గోరిథం మూలకం రకాలను బట్టి మారదు, కాబట్టి టెంప్లేట్‌ను ఉపయోగించడం ద్వారా, ఈ ఫంక్షన్ (ఫంక్షన్) కోడ్ (కోడ్), శోధనలు, కనిష్ట, సగటును క్రమబద్ధీకరించే ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) ను వ్రాయవచ్చు.  వాటన్నింటినీ సాధారణ రూపంలో వ్రాయవచ్చు మరియు వెంటనే ఆ రకాన్ని బట్టి ఉంటుంది. 
 ఇప్పుడు, డేటా స్ట్రక్చర్ పరంగా కోడ్ పునర్వినియోగాన్ని పరిశీలిస్తే మనం ఎక్కువ చేయవచ్చు. 
 ఉదాహరణకు, ఒక స్టాక్‌ను పరిగణించండి, మొదటిది చివరిది. 
 ఉదాహరణకు మీరు పేర్చే అనేక సమస్యలు ఉన్నాయి, శీర్షాన్ని బ్యాక్‌ట్రాక్ చేయడానికి అక్షరాల స్టాక్ అవసరం. 
 పోస్ట్‌ఫిక్స్‌లోని వ్యక్తీకరణ మరియు ఇన్ఫిక్స్ వ్యక్తీకరణకు మళ్ళీ అక్షరాల స్టాక్ అవసరం. 
 ఉపసర్గ వ్యక్తీకరణల మూల్యాంకనానికి మనం అంచనా వేయదలిచిన పూర్ణాంక, డబుల్, సంక్లిష్టమైన వివిధ రకాల రకాలు అవసరం. 
 మూడు లోతుకు మొదటి మూడు నోడ్‌ల యొక్క నోడ్ పాయింటర్ (రకం) స్టాక్ అవసరం. 
 అనేక సమస్యలు ఉండవచ్చు, దీనికి ఒక నిర్దిష్ట సమస్య పరిష్కారం కోసం వివిధ రకాల స్టాక్‌లు అవసరం. 
 ఇప్పుడు, మనకు అవసరమైనప్పుడు ఈ రకానికి ఒక స్టాక్ క్లాస్ రాయడం ఒక ఎంపిక, కాని మనం చూస్తున్నది కోడ్ యొక్క స్టాక్, దీనిని ఉదారంగా పిలుస్తారు, మనకు కావలసిన నిర్దిష్ట రకాన్ని వెంటనే ఇవ్వవచ్చు, ఎందుకంటే, పుష్, పాప్, టాప్, ఖాళీ మరియు మొదలైన ఇంటర్‌ఫేస్‌ల సమితితో స్టాక్ రూపంలో ఒక భావన మొదటిది., స్టాక్ ఉపయోగిస్తున్న నిర్దిష్ట మూలకం రకాన్ని బట్టి ఇది మారదు.
 మీరు మరింత చూస్తే క్యూలో అదే సారూప్యతను మీరు కనుగొంటారు. ప్రాసెస్ షెడ్యూలింగ్ ఉపయోగించి టాస్క్ షెడ్యూలింగ్. క్యూ యూజర్కు చాలా సమస్యలు అవసరం, దీనికి స్టాక్ (స్టాక్) క్యూ అమలు చేయడం వంటి జాబితా అవసరం, అప్పుడు ఏదైనా వస్తువుల సేకరణలు మరియు మొదలైనవి. 
 క్లాస్ టెంప్లేట్లు కోడ్ పునర్వినియోగానికి ఒక పరిష్కారం, ఇక్కడ మీకు ఒకే ఇంటర్ఫేస్ మరియు అదే లేదా చాలా దగ్గరి అల్గోరిథంలు, సారూప్య అల్గోరిథంలు ఉన్న డేటా స్ట్రక్చర్ యొక్క సాధారణ భాగాన్ని మేము గుర్తిస్తాము, కాని మూలకం రకాలు కారణంగా అమలు భిన్నంగా ఉండాలి, వాటిని కలపడం సాధారణ సాధారణ తరగతి టెంప్లేట్ యొక్క సందర్భం. 
 కాబట్టి, స్పష్టంగా చెప్పాలంటే, ఇది ఎడమ మరియు కుడి, మీరు ఇక్కడ చూస్తే అది అక్షరాల స్టాక్, ఇది పాత్ర.
 ఇవి ప్రత్యేకమైన కోడ్ పంక్తుల ఉల్లేఖనాలుగా చూపించబడతాయి, ఇవి రకం పరిజ్ఞానం అవసరం మరియు పూర్ణాంకాల స్టాక్, కాబట్టి ఇవి మీకు అవసరమైన పంక్తులు.
 కాబట్టి మీరు ఇక్కడ పూర్ణాంకం, ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మీరు ఇక్కడ నాలుగు, మరియు ఇక్కడ పూర్ణాంకం.
 ఇది కాకుండా, మిగిలిన కోడ్ కూడా ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో మాదిరిగానే టైప్ వేరియబుల్‌తో భర్తీ చేయకపోతే అదే విధంగా ఉంటుంది.
 ఇది తరగతి టెంప్లేట్‌ను రకంతో ప్రామాణీకరించిన మరియు సభ్యుల విధులను కలిగి ఉంటుంది. 
 మిగిలిన నిర్వచనం వివరాల కోసం మరియు ఉదాహరణను పరిశీలిస్తుంది. 
 కాబట్టి మనం చేసే స్టాక్ కోసం, మేము ఈ రకమైన మూలకం రకాన్ని T గా పారామితి చేస్తాము. 
 మీరు చేసేటప్పుడు మీకు అవసరమైన స్థలాలను మీరు చూడవచ్చు కాబట్టి నేను టి అని ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి. నేను అగ్రస్థానంలో ఉన్నప్పుడు ఎలిమెంట్ రకాన్ని తెలుసుకోవాలి, పాప్ చేయండి. తెలుసుకోవలసిన అవసరం లేదు, ఖలీ అవసరం లేదు తెలుసు. 
 ఇది T రకం కాబట్టి, నేను దానిని ప్రామాణీకరించాను మరియు ఒక ఫంక్షన్ (ఫంక్షన్) విషయంలో నేను చేసినట్లుగానే, టెంప్లేట్ క్లాస్ T సందర్భంలో ఇది ఒక టెంప్లేట్ (టెంప్లేట్) అని చెప్పాను.  ఒక వేరియబుల్. 
 మరియు ఈ సభ్యుల విధులను సూచించడానికి ఆ టెంప్లేట్ వేరియబుల్ ఉపయోగించబడుతుంది. 
 కాబట్టి, ఇది టెంప్లేట్ చేయబడిన స్టాక్‌ను చేస్తుంది, ఇది దేనికైనా వెంటనే చేయవచ్చు. 
 వాస్తవానికి, ఈ స్టాక్ టెంప్లేట్ పని చేయడానికి, మనకు కొన్ని లక్షణాలను సంతృప్తి పరచడానికి టైప్ టి, టైప్ వేరియబుల్ టి అవసరం. 
 ఉదాహరణకు, అంశం T రకం మరియు డేటా I రకం T మరియు డేటా మూలకం. 
 అందువల్ల ఇక్కడ ఒక నియామకం సాధ్యమేనని మేము చూస్తాము. 
 కాపీ అసైన్‌మెంట్ ఆపరేటర్ ఈ ప్రదేశంలో సాధ్యమవుతుంది, అది లేకుండా మీరు వెంటనే ఒక నిర్దిష్ట రకం స్టాక్‌ను పంపలేరు. 
 ఇది స్టాక్ డాట్ హెడర్‌లోకి వెళుతుందని uming హిస్తూ, దీన్ని ఉపయోగించడం మనం చూస్తే, మనం ఫంక్షన్ (ఫంక్షన్) ను వేగవంతం చేసే విధంగానే నాకు వెంటనే ఇష్టం. మేము దానిని పాత్ర కోసం పిలుస్తాము. 
 ఇది ఇప్పుడు నేను ఉపయోగించగల అక్షరాల స్టాక్‌ను ఇస్తుంది. 
 నేను ఈ కోడ్‌ను వివరించడానికి వెళ్ళను. మేము ఈ కోడ్‌ను చాలాసార్లు చూశాము, ఒత్తిడిని తిప్పికొట్టడానికి మేము ఆ స్టాక్‌ను ఉపయోగించవచ్చు. 
 అదే శీర్షికతో డాట్ h ని స్టాక్ చేయండి. 
 ఇప్పుడు నేను ప్రత్యేక అప్లికేషన్ రాయగలను. 
 కాబట్టి, పోస్ట్‌ఫిక్స్ వ్యక్తీకరణలను అంచనా వేయడానికి నేను వేరే అప్లికేషన్‌ను వ్రాయగలిగే అదే టెంప్లేట్ చేయబడిన స్టాక్ కోడ్ వలె ఇదే శీర్షిక. 
 ఇక్కడ వ్యక్తీకరణలు పూర్ణాంకాలు కాబట్టి, నాకు పూర్ణాంకం యొక్క వ్యక్తీకరణ విలువను కలిగి ఉండే స్టాక్ అవసరం, కనుక ఇది విలీనం చేయబడింది. 
 నేను సి తో చేస్తే, నాకు రెండు వేర్వేరు స్టాక్ ఇంప్లిమెంటేషన్లు, రివర్స్ స్ట్రింగ్ కోసం నాలుగు బేస్ ఇంప్లిమెంటేషన్లు మరియు ఈ ప్రత్యేకమైన పోస్ట్ ఫిక్స్ మూల్యాంకన సమస్య కోసం ఒక ఇంటెంట్ రివర్స్ రివర్స్ ఇంప్లిమెంటేషన్ అవసరం, కానీ నేను అదే టెంప్లేట్ (స్టాక్) ని నిర్వచించాను రెండు వేర్వేరు రకాలతో త్వరగా. 
 ఇది తరగతి టెంప్లేట్ యొక్క ప్రధాన బలం మరియు ఇది డేటా స్ట్రక్చర్ల పరంగా ప్రత్యేకంగా మరియు వేర్వేరు యుటిలిటీ క్లాసులలో మాకు చాలా సాధారణీకరణను ఇస్తుంది. 
 ఇప్పుడు, సహజంగా నేను ఈ ఆవశ్యకత చేసినప్పుడు నేను చెప్పినట్లు. 
 ఇంతకుముందు మేము దీనిని ఫంక్షన్ టెంప్లేట్ల కోసం చూశాము, ఇప్పుడు మీరు దీన్ని క్లాస్ టెంప్లేట్ కోసం చూస్తున్నారు, పరామితి రకం టెంప్లేట్‌లో ఉపయోగించబడిందని మేము నిర్ధారించుకోవాలి, అవి ఏ రకమైనవి అయినా కొన్ని లక్షణాలను సంతృప్తిపరుస్తాయి. 
 ఇతర పారామీటర్ చేయబడిన రకాలు కూడా ఉండవచ్చు, అవి సొంతంగా టైప్ చేయవచ్చు, కాని తరగతి అమలు యొక్క ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అమలుకు అవసరమైన పద్ధతులకు అవి మద్దతు ఇవ్వడం ముఖ్యం. 
 కాబట్టి, లక్షణాలు ఉన్నందున, వారు కన్స్ట్రక్టర్కు మద్దతు ఇవ్వవలసి ఉంటుంది, వారు వేర్వేరు ఆపరేటర్లకు మద్దతు ఇవ్వవలసి ఉంటుంది మరియు మేము దాని ఉదాహరణలను చూశాము. 
 అవి ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్ (టెంప్లేట్) అలాగే క్లాస్ టెంప్లేట్ (టెంప్లేట్) రెండింటినీ అనుసరించాల్సిన ప్రాథమిక రకం లక్షణాలు.
 కాబట్టి, ఫంక్షన్ టెంప్లేట్ విషయంలో మీరు చూసినది ఇదే, ఇది మీ రీక్యాప్ కోసం మాత్రమే.
 తరగతి టెంప్లేట్ సందర్భంలో, ఆవశ్యకతను సాధారణంగా స్పష్టంగా తీర్చాల్సిన అవసరం ఉంది మరియు ఇది ఒక తరగతి కనుక, తరగతిని వాస్తవంగా అందించకుండానే ఫార్వార్డ్ చేయడం చాలా సాధ్యమే. వాస్తవానికి నేను పిలువబడేదాన్ని వ్రాయగలను అసంపూర్ణ స్టాక్ రకం.
 టైప్ టి ద్వారా ప్రామాణికమైన స్టాక్ అని పిలువబడే తరగతి ఉందని వ్యవస్థకు చెప్పడం మరింత ప్రకటన అని ఇది చెప్పింది, అయితే ఇది పద్ధతులు ఏమిటో చెప్పలేదు మరియు మొదలైనవి. 
 కాబట్టి, దానితో.
 నేను వస్తువును తక్షణం చేయడానికి ప్రయత్నిస్తే, నేను లోపం పొందుతాను, ఎందుకంటే కన్స్ట్రక్టర్, డిస్ట్రాయర్, ఇతర ఆపరేటర్లు మరియు సభ్యులను నాకు తెలియకపోతే ఆ వస్తువును తక్షణం చేయలేము. 
 కానీ నేను ఇప్పటికీ ఈ రకానికి పాయింటర్‌ను నిర్వచించగలను; నేను ఈ రకమైన సూచనను నిర్వచించగలను. కాబట్టి రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) ను నేను నిర్వచించగలను, 
 అది నిజంగా ఏమిటో నాకు తెలియనప్పుడు ఈ రకాన్ని సూచనగా తీసుకుంటుంది.
 నేను స్టాక్ (స్టాక్) ఆపరేషన్లను ఉపయోగించాలనుకున్నప్పుడు రివర్స్ స్ట్రింగ్ ఫంక్షన్ (ఫంక్షన్) యొక్క బాడీని అమలు చేయాలనుకుంటే సహజంగానే నేను స్టాక్ (స్టాక్) అంటే ఏమిటో తెలుసుకోవాలి.
 ఆవశ్యకత పరంగా, సోమరితనం అత్యవసరం అనేది చాలా ఉపయోగకరంగా ఉంటుందని మీకు తెలుసు.
 కాబట్టి, నేను అదే విలోమ స్ట్రింగ్ కోడ్‌ను కొద్దిగా భిన్నమైన రీతిలో చూపిస్తున్నాను, అంతకుముందు ఈ మొత్తం స్టాక్ క్లాస్‌ను స్టాక్ డాట్ హెచ్ ఎంటర్లలో చేర్చారు, తద్వారా మొత్తం ఆలోచన అక్కడ జరుగుతున్నట్లుగా.
 కొన్ని విషయాలు ఉంటే, ఇప్పుడు నేను ఇక్కడ చేర్చుతున్నాను, ఉదాహరణకు, ఇక్కడ మనం ఫార్వర్డ్ డిక్లరేషన్, కాబట్టి ఆ ఫార్వర్డ్ డిక్లరేషన్‌లో నేను రివర్స్ స్ట్రింగ్ ఫంక్షన్ యొక్క సంతకాన్ని కలిగి ఉండగలను, ఇది ఇక్కడ ఉంచిన స్ట్రింగ్ దీనికి విరుద్ధంగా చేస్తుంది మరియు ఎందుకంటే t ద్వారా టెంప్లేట్ (టెంప్లేట్) అనే స్టాక్‌ను ఉపయోగిస్తున్నారని ప్రతి ఒక్కరూ తెలుసుకోవలసిన సూచన ఈ సందర్భంలో చార్ (చార్) ఉదాహరణ.
 కానీ ఆ రకం ఏమిటో తెలియదు, రకం ఎలా అమలు చేయబడిందో తెలియదు మరియు పట్టించుకోదు ఎందుకంటే ఇది కేవలం సూచనను చూస్తోంది.
 నేను ఈ మెయిన్ కలిగి ఉంటే, నేను నిజంగా ఈ ఫంక్షన్‌ను ప్రారంభించగలను, ఎందుకంటే నేను తెలుసుకోవలసినది శరీరం తరువాత రాగల ఫంక్షన్ (ఫంక్షన్) యొక్క సంతకం, కాబట్టి నేను ఉద్దేశపూర్వకంగా శరీరానికి తరువాతి సమయం ఇచ్చాను. ప్రధాన శరీరాన్ని తెలుసుకోవలసిన అవసరం లేదని మీరు చూపిస్తారు.
 అయితే, నేను ఇక్కడ స్టాక్ యొక్క ఉదాహరణను రిఫరెన్స్ పరామితిగా ఇవ్వడం అవసరం. 
 కాబట్టి, ఈ స్టాక్‌ను వెంటనే చేయాల్సిన అవసరం ఉంది. 
 స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియకుండా మీరు రివర్స్ స్ట్రింగ్ యొక్క సంతకాన్ని నిర్వచించగలిగినప్పుడు, మీరు ప్రధాన ఫంక్షన్ (ఫంక్షన్) ను వ్రాయలేరు, ఎందుకంటే మీకు స్టాక్ (స్టాక్) యొక్క నిర్వచనం తెలియదు. 
 కాబట్టి స్టాక్ యొక్క నిర్వచనం స్టాక్ యొక్క తక్షణానికి ముందు ఉండాలి. 
 ఎందుకంటే ఇప్పుడు మీకు ఆబ్జెక్ట్ ఉదాహరణ ఉంటే, మేము నిర్మించగలగాలి, అది విధ్వంసం చేయగల సామర్థ్యం ఉండాలి, అది అన్ని వివిధ విధులను అమలు చేయగలగాలి. 
 కాబట్టి ఇది ఇలా ఉంది, క్లాస్ టెంప్లేట్ యొక్క ఆవశ్యకత మీరు ఎల్లప్పుడూ అన్నింటినీ ఒకేసారి చేయాల్సిన అవసరం లేదని నేను హైలైట్ చేయాలనుకుంటున్నాను. 
 మీరు క్లాస్ రిఫరెన్స్ లేదా తాత్కాలిక క్లాస్‌ని సూచిస్తుంటే, మీరు క్లాస్ యొక్క పూర్తి నిర్వచనాన్ని తెలుసుకోవలసిన అవసరం లేకపోవచ్చు, మీరు క్లాస్ డిక్లరేషన్‌ను తదుపరి డిక్లరేషన్‌తో మాత్రమే నిర్వహించవచ్చు, ఇది తాత్కాలికమేమిటి, ఏమిటి వివిధ రకాలు మొదలైనవి. 
 ఇది ప్రాథమిక తరగతి యొక్క టెంప్లేట్. 
 తరువాత మేము ఏదో చూపిస్తాము, ఇది మీ పరిపూర్ణతపై అవగాహన కోసం, నేను లోతుగా వెళ్ళకూడదు. 
 టెంప్లేట్ (టెంప్లేట్) పరంగా ఈ ఫంక్షన్ (ఫంక్షన్) ఎలా ఉంటుందో చూపించడానికి ఇది మాత్రమే. గరిష్ట ఫంక్షన్ (ఫంక్షన్) లో ఒక రకమైన పారామితి (పరామితి) టి ఉంటే మరియు నాలుగు నక్షత్రాలకు మనకు వేరే ప్రవర్తన ఉందని మేము చూశాము. కావాలనుకుంటే, అతను ప్రత్యేకత కలిగి ఉన్నాడు మరియు టీని కేవలం నాలుగు నక్షత్రాలకు మరియు మరొకదానికి మార్చాడు; దాని కోసం ఫంక్షన్ యొక్క నిర్వచనం. 
 ఇది తరగతికి కూడా సాధ్యమే మరియు నేను ఒకటి కంటే ఎక్కువ పారామితులను కలిగి ఉంటే నేను ఆ పారామితులను పాక్షికంగా స్పెషలైజ్ చేయగలుగుతున్నాను, కాబట్టి నేను ఇక్కడ వివరించడానికి ప్రయత్నిస్తున్నాను. 
 కాబట్టి, ఇక్కడ విద్యార్థి తరగతి T1 మరియు T2 అనే రెండు రకాలుగా టెంప్లేట్ చేయబడిన ఒక టెంప్లేట్ ఉంది. 
 T1 అనేది ఒక రకమైన పాత్ర, T2 పేరు యొక్క రకం. 
 ఒక పాత్ర పూర్ణాంకం అయ్యే అవకాశం ఉంది, అది స్ట్రింగ్ కావచ్చు. 
 పేరు C ++ లో స్ట్రింగ్ రకం కావచ్చు లేదా ఇది నాలుగు నక్షత్రాలు, సి స్ట్రింగ్ రకం మరియు మొదలైనవి కావచ్చు. 
 ఇవి మన వద్ద ఉన్న రెండు వేర్వేరు రకాలు. 
 కాబట్టి, మీరు చేసేది ప్రాథమికంగా, నేను ఇచ్చిన కార్యాచరణ చాలా లేదు, మీరు ఒకదాన్ని సృష్టించి, ఈ రెండు ఫీల్డ్‌లను ప్రింట్ చేయగల ముద్రణను కలిగి ఉన్నారు, కాబట్టి ఉదాహరణ కోసం మాత్రమే. 
 ఇప్పుడు, ఆసక్తికరమైనది ఏమిటంటే, ఈ నిపుణుడు మనం ఎక్కడ పాక్షికంగా ఉన్నాము? T1 మరియు T2 రెండు పారామితులు మరియు నేను పాక్షికంగా ప్రత్యేకత కలిగి ఉన్నాను, నాకు ఇప్పటికీ T1 పరామితి అయిన ఒక టెంప్లేట్ ఉంది, కానీ T2 స్పష్టంగా నాలుగు నక్షత్రాలను కలిగి ఉంది మరియు తరువాత నేను దానిని ఉపయోగించాను. 
 టి 2 విషయంలో, నేను నాలుగు నక్షత్రాలను ఉపయోగిస్తున్నాను. ఆ నాలుగు నక్షత్రాలను నేను స్పష్టంగా ఉంచాను. 
 అప్పుడు అది టెంప్లేట్ యొక్క పాక్షిక ఉదాహరణ అవుతుంది. 
 ఇంతకుముందు విద్యార్థి తరగతి యొక్క ఈ టెంప్లేట్కు T1 మరియు T2 ని పేర్కొనడానికి రెండు రకాలు అవసరమయ్యాయి, దీని కోసం ఒక రకాన్ని మాత్రమే T1 అని పేర్కొనవలసి ఉంది, మరొకటి ఇప్పటికే నిర్దిష్టంగా ఉంది. 
 టెంప్లేట్ నిర్వచనంలో, మీరు అన్ని రకాల పారామితులను పేర్కొన్నప్పుడు, టెంప్లేట్ పూర్తిగా ప్రత్యేకమైనదని మీరు చెప్తారు, లేకపోతే అది పాక్షికంగా ప్రత్యేకమైనదని మీరు చెబుతారు. 
 మేము దీన్ని కొన్ని తరగతి ఉదంతాలతో చూస్తే, మనం సహజంగా స్ట్రింగ్‌లో రెండింటినీ నిర్దేశించే ఒక ఉదాహరణను సృష్టించాము. 
 కాబట్టి ఈ టెంప్లేట్ T1 int మరియు T2 స్ట్రింగ్ గురించి మాట్లాడటానికి ప్రయత్నిస్తోంది. 
 మీరు అవుట్పుట్ నుండి సులభంగా సృష్టించవచ్చు, మీరు S1 చుక్కలు కలిగి ఉన్నారు; S1 ఈ టెంప్లేట్ సంస్కరణ కోసం సృష్టించబడిన ఒక వస్తువు మరియు మేము S1 డాట్‌ను ప్రింట్ చేస్తున్నాము, ఇది ఉపయోగించబడుతున్న సంస్కరణ. 
 మరొకటి, మేము ఏమి ఉపయోగించాము? రెండవదానిలో, మేము ఆసక్తికరమైనదాన్ని ఉపయోగించాము. 
 సెకనులో మీరు ఏమి చెబుతున్నారో గమనించండి, దీనిలో మేము T1 int సమానమైన లేదా T2 స్ట్రింగ్ సమానమైనదాన్ని కూడా పేర్కొన్నాము. 
 ఒక ఫంక్షన్ (ఫంక్షన్) సందర్భంలో మనం విలువల ఫంక్షన్ల యొక్క డిఫాల్ట్ పారామితిని (పరామితి) కలిగి ఉండవచ్చని గుర్తుంచుకోండి, మనం 5 తో ప్రారంభించటానికి సమానంగా int x ను వ్రాయగలము, తద్వారా నేను ఆ పరామితిని పాస్ చేయకపోతే (పరామితి) ) నేను చేస్తే, అది 5 గా తీసుకోబడుతుంది. 
 అదేవిధంగా, మీరు డిఫాల్ట్ రకం పరామితి కావచ్చు. 
 నేను దానిని పేర్కొనకపోతే అది అలా తీసుకోబడుతుంది. 
 నేను స్ట్రింగ్ స్టూడెంట్ ఇంట్ అని చెప్తుంటే, నేను స్టూడెంట్ ఇంట్ అని చెబితే నేను తీసుకుంటున్నాను. 
 మరియు నేను T2 ను డిఫాల్ట్‌గా స్ట్రింగ్‌గా తీసుకోలేదు. 
 కనుక ఇది అప్రమేయంగా స్ట్రింగ్ గా తీసుకోబడుతుంది. 
 నేను దీన్ని చేయగలను, ఇది మళ్ళీ అర్ధం, ఇక్కడ రెండూ డిఫాల్ట్ పరామితిని med హించాయి. 
 డిఫాల్ట్ T1 int, డిఫాల్ట్ T2 int. 
 నేను ఒక విద్యార్థిని స్ట్రింగ్ చేయగలను, అప్పుడు నేను స్టూడెంట్ స్ట్రింగ్ చేస్తాను. అంటే నేను T1 కు స్ట్రింగ్ చేశాను మరియు T2 డిఫాల్ట్, ఇది కూడా స్ట్రింగ్. 
 మీరు ఉత్పత్తి చేసే అవుట్‌పుట్‌ను నేను చూపించానని మీరు చూడవచ్చు. 
 చివరగా, మేము ఇక్కడ ఏమి చేసామో నేను చెబితే? రెండవ పరామితి నాలుగు నక్షత్రాలకు పాక్షికంగా నిర్దిష్టంగా ఉందని మేము చెప్పాము. 
 నేను Int చార్ స్టార్‌ను ఉంచినట్లయితే అది టెంప్లేట్ అని అర్ధం కాదు ఎందుకంటే రెండవ పరామితి పాక్షికంగా పేర్కొనబడింది, కనుక ఇది టెంప్లేట్ అని అర్ధం అని మీరు చెబితే మరియు మేము S5 కోసం ప్రింట్ చేస్తున్నామని చూస్తే. మేము S5 డాట్‌ను ప్రింట్ చేసినప్పుడు, మీరు చూడవచ్చు ఆ సంస్కరణ రెండు ముద్రించబడుతోంది, ఇది మీరు ఒక నిర్దిష్ట టెంప్లేట్ సంస్కరణను పాక్షికంగా ఉపయోగిస్తున్నట్లు చూపిస్తుంది. ఉపయోగిస్తున్నారు. 
 ఇది మీరు బహుళ పారామితులతో ఈ రకమైన పనులను చేయగలరని మరియు వాటిని పాక్షికంగా నిపుణులుగా చేయగలరని మీకు చూపించడమే ఎందుకంటే మీరు ఒకదాని నుండి మరొకదానికి వెళతారు మరియు మీరు డిఫాల్ట్ పారామితులను కూడా కలిగి ఉంటారు. 
 చివరగా, నేను పూర్తి చేయడానికి ముందు, తరగతి వారసత్వంతో మాత్రమే ఒక టెంప్లేట్‌ను ఉపయోగించటానికి ఒక ఉదాహరణను మీకు చూపిస్తాను, కాబట్టి ఇది బౌండ్ సెట్ రకం యొక్క డేటా నిర్మాణాన్ని సృష్టించే ప్రయత్నం. 
 ఒక జాబితా ఉంది, జాబితా గురించి ప్రత్యేకంగా ఆసక్తికరంగా ఏమీ లేదు, ఇది యాడ్ ఫంక్షన్ (ఫంక్షన్) కలిగి ఉన్న జాబితా, దీనిలో పొడవు ఫంక్షన్ (ఫంక్షన్), ఒక నిర్దిష్ట మూలకాన్ని (ఫంక్షన్) కనుగొనే ఫంక్షన్, వెక్టర్‌ను అంతర్గతంగా ఉపయోగిస్తుంది మూలకాలను పట్టుకోవటానికి. 
 కాబట్టి ఇది సహాయక డేటా నిర్మాణం లాంటిది. 
 అప్పుడు మీరు ఈ జాబితాను ఉపయోగించి సమితిని నిర్వచించండి. 
 ఒక సమితి తరగతి t యొక్క అంశాల జాబితాను కలిగి ఉంటుంది. 
 ఇది వర్చువల్ ఫంక్షన్ (ఫంక్షన్) ను కలిగి ఉంటుంది, ఇది మూలకాలకు పొడవును జోడించగలదు. 
 కాబట్టి ప్రాథమికంగా మీరు ఒక మూలకాన్ని జోడిస్తే అది జాబితాలోకి వెళుతుంది, అది ఐటెమ్‌కు వెళ్లి పుట్ చేస్తుంది. 
 మీరు ఇక్కడ ఒక పుట్ చేయాలనుకుంటే, నేను ఏదైనా కోల్పోయానా? లేదు. 
 ఇది దీన్ని జోడిస్తుంది, వాస్తవానికి జోడిస్తుంది. మీరు ఒక సెట్‌కు జోడించాలనుకుంటే, ఇప్పుడు అది ఒక సెట్, ఇది ఆసక్తికరంగా ఉంది, ఇది ఒక సెట్ కాబట్టి ప్రతి మూలకం ప్రత్యేకంగా ఉండాలి, సెట్ ప్రత్యేకతను కలిగి ఉంటుంది.
  నేను దీన్ని చేస్తున్న విధానం, నేను మొదట ఈ జాబితాలోని విలువను తీసుకుంటాను. మూలకం ఈ జాబితాకు చెందినదా అని నేను కనుగొన్నాను. అది ఉంటే అది ఇప్పటికే సెట్‌లో ఉంది కాబట్టి మీరు ఇప్పుడే తిరిగి రండి. 
 నాకు ఆందోళన లేకపోతే నియంత్రణ ఇక్కడ వస్తుంది, కాబట్టి మీరు దాన్ని జాబితాకు చేర్చండి, కనుక ఇది అదే. 
 పొడవు జాబితా యొక్క పొడవులో కేవలం ఒక రేపర్ ఉంది, కానీ ఒక రేపర్ను కనుగొనండి. 
 ఏదైనా మూలకం రకానికి సెట్ చేయవలసిన రకాన్ని ఇది మీకు ఇస్తుంది. 
 ఇప్పుడు, నాకు డిఫాల్ట్ సెట్ కావాలి అనుకుందాం. 
 ఇక్కడ పేరు పెట్టబడిన సెట్, ఇది రెండు సరిహద్దులతో కూడిన సమితి; ఎలిమెంట్స్ ఆ పరిమితిలో ఉండాలి, నిర్వచించిన సెట్‌లో కనీస మరియు గరిష్ట విలువల్లో ఉన్న సభ్యులు మాత్రమే ఉంటారు. 
 కాబట్టి ఇది సెట్ నుండి ఒక స్పెషలైజేషన్. 
 మీరు నైపుణ్యాన్ని ఎలా వ్రాస్తారో మీరు చూడవచ్చు. 
 బౌండ్ సెట్ కూడా టెంప్లేట్ ఎందుకంటే దీనికి మూలకం రకం అయిన టెంప్లేట్ పరామితి ఉంది, అయితే ఇది సెట్ t లో ప్రత్యేకత కలిగి ఉంది. 
 అప్పుడు దానికి బౌండ్ సెట్‌లో కన్స్ట్రక్టర్ ఉంటుంది, దీనికి యాడ్ ఉంటుంది. 
 మరియు, మీరు జోడించడానికి ప్రయత్నించినప్పుడు ఏమి జరుగుతుంది, అది ఇప్పటికే ఉంటే, అది తిరిగి వస్తుంది, ఇది సమితి యొక్క ప్రవర్తన. 
 కానీ, విలువ కనిష్ట మరియు గరిష్టంగా ఉంటే అది బేస్ క్లాస్ ఆబ్జెక్ట్ అయిన అసలు సెట్ క్లాస్ ఆబ్జెక్ట్‌కు వెళ్లి దాన్ని జోడిస్తుంది. 
 అది కాకపోతే, అది ఏమీ చేయదు, ఇది ఇక్కడ మినహాయింపు ద్వారా మిమ్మల్ని విస్మరిస్తుంది మరియు కొన్ని ఇతర ప్రవర్తనలను కూడా చేస్తుంది. 
 కానీ నేను చూపించడానికి ప్రయత్నిస్తున్నది ఇక్కడ ఉంది, ఇది సెట్ యొక్క ప్రత్యేకత అయిన ఒక బౌండ్ సెట్‌ను కలిగి ఉంది, ఇది టెంప్లేట్ చేయబడింది, ఇది కూడా టెంప్లేట్ చేయబడింది మరియు దానిలో కొంత భాగం ఎందుకంటే దానిలో ఒకటి అయిన భాగాల జాబితా ఉంది ఒక వెక్టర్ భాగంగా. 
 ఇవన్నీ టెంప్లేట్ చేయబడ్డాయి, చివరికి నేను ఈ టెంప్లేటెడ్ క్లాస్‌లో ఈ టెంప్లేటెడ్ క్లాసులు మరియు వారసత్వాన్ని ఉపయోగించి ఏ రకమైన బౌండ్ సెట్‌ను పొందుతాను. 
 కాబట్టి, వారసత్వ లక్షణంతో టెంప్లేట్‌ను ఈ విధంగా కలపవచ్చు. 
 ఇది తుది బౌండ్ సెట్ అప్లికేషన్, మీరు ఇప్పుడే పూర్తి చేసి, అప్లికేషన్‌ను తనిఖీ చేసి, దీన్ని అమలు చేయవచ్చు, తద్వారా మీరు ఈ సెట్‌కు కొన్ని సంఖ్యలను జోడించారు, ఆపై మీరు కనుగొనే నాలుగు ఆశలను కనుగొనడానికి ప్రయత్నిస్తారు. 
 మీ జాబితాలో 0 లేదా 25 వంటివి ఉన్నాయా అని మీరు తనిఖీ చేస్తారు, ఎందుకంటే మీ జాబితా 3 మరియు 21 మధ్య ఉంటుంది. 
 అందువల్ల మీరు unexpected ఊహించని విలువ లేదని చెప్పారు. 
 ఇది మీ నిర్బంధ సెట్ డేటా రకం ఎలా పనిచేస్తుందో ఉదాహరణతో చూపిస్తుంది. 
 సంక్షిప్తంగా, మేము C ++ లో టెంప్లేట్‌లను పరిచయం చేసాము మరియు క్లాస్ మూస డేటా నిర్మాణానికి ఒక సాధారణ పరిష్కారం అని చర్చించాము. 
 ఫంక్షన్ (ఫంక్షన్) టెంప్లేట్‌తో కలిపి, జెనరిక్ ప్రోగ్రామింగ్, ప్రోగ్రామింగ్ కోడ్ మరియు ప్రామాణిక టెంప్లేట్ లైబ్రరీ లేదా సి ++ వ్రాయగలిగే విషయంలో ఇది మాకు ఒక ప్రధాన ప్రయోజనాన్ని ఇస్తుంది. STL అని పిలవబడే వాటికి పునాది ఇస్తుంది.