C++లో లోయర్_బౌండ్() పద్ధతి అంటే ఏమిటి

C Lo Loyar Baund Pad Dhati Ante Emiti



C++ ప్రోగ్రామింగ్ లాంగ్వేజ్ విస్తృత శ్రేణి విధులు మరియు విస్తృతంగా ఉపయోగించే పద్ధతులను అందిస్తుంది. క్రమబద్ధీకరించబడిన కంటైనర్‌లో ఇచ్చిన విలువ యొక్క మొదటి సంఘటనను కనుగొనడానికి ఉపయోగించబడుతుంది, దిగువ_బౌండ్() పద్ధతి అటువంటి ఫంక్షన్. ఈ కథనం సింటాక్స్, పారామితులు, రిటర్న్ విలువలు మరియు C++లో లోయర్_బౌండ్() పద్ధతికి ఉదాహరణ కోడ్‌ను కవర్ చేస్తుంది.

దిగువ_బౌండ్() పద్ధతి అంటే ఏమిటి?

C++లో దిగువ_బౌండ్() పద్ధతి క్రమబద్ధీకరించబడిన కంటైనర్‌లో ఇచ్చిన విలువ యొక్క మొదటి సంఘటనను కనుగొంటుంది. ఇది C++లోని లైబ్రరీలో ఒక భాగం మరియు శ్రేణులు, వెక్టర్‌లు మరియు ఇతర క్రమబద్ధీకరించబడిన కంటైనర్‌లపై బైనరీ శోధనలను నిర్వహించడానికి ఉపయోగించబడుతుంది. దిగువ_బౌండ్() పద్ధతి అందించిన విలువ కంటే తక్కువ లేని కంటైనర్‌లోని పేర్కొన్న పరిధిలోని మొదటి మూలకాన్ని సూచించే ఇటరేటర్‌ని అందిస్తుంది.

వాక్యనిర్మాణం







C++లో లోయర్_బౌండ్() పద్ధతికి రెండు వైవిధ్యాలు ఉన్నాయి: డిఫాల్ట్ మరియు కస్టమ్ సింటాక్స్.



డిఫాల్ట్ సింటాక్స్

డిఫాల్ట్ సింటాక్స్ వరుసగా శోధించాల్సిన పరిధిలోని మొదటి మరియు చివరి మూలకాలపై సూచించే ఫార్వర్డ్‌ఇటరేటర్‌ను తీసుకుంటుంది మరియు పరిధిలోని మూలకాలను పోల్చడానికి విలువను తీసుకుంటుంది.



ఫార్వర్డ్‌ఇటరేటర్ దిగువ_బౌండ్ ( ముందుగా ForwardIterator , ForwardIterator చివరిది , స్థిరంగా టి & విలువ ) ;

కస్టమ్ సింటాక్స్

కస్టమ్ సింటాక్స్ అదనంగా వినియోగదారు నిర్వచించిన బైనరీ ప్రిడికేట్ ఫంక్షన్‌ను తీసుకుంటుంది, ఇది మూలకాలను క్రమం చేయడానికి కఠినమైన బలహీనమైన క్రమాన్ని అనుసరిస్తుంది.





ఫార్వర్డ్‌ఇటరేటర్ దిగువ_బౌండ్ ( ముందుగా ForwardIterator , ForwardIterator చివరిది , స్థిరంగా టి & విలువ , సరిపోల్చండి ) ;

పారామితులు

C++లో low_bound() పద్ధతి మూడు పారామితులను తీసుకుంటుంది.

మొదటి చివరి: మొదటి రెండు పారామితులు, 'మొదటి' మరియు 'చివరి', పద్ధతి దిగువ సరిహద్దు కోసం శోధించే పరిధిని [మొదటి, చివరి) నిర్ణయిస్తాయి. పరిధి 'మొదటి' మరియు 'చివరి' అనే రెండు పారామితుల ద్వారా పేర్కొనబడింది. పరిధి 'మొదటి' మరియు 'చివరి' ఇటరేటర్‌ల మధ్య అన్ని ఎలిమెంట్‌లను కలిగి ఉంటుంది కానీ 'చివరి' ఇరేటర్ ద్వారా సూచించబడిన మూలకాన్ని మినహాయిస్తుంది.



విలువ: లోయర్_బౌండ్() పద్ధతి యొక్క మూడవ పరామితి 'వాల్'గా సూచించబడుతుంది. ఇది పేర్కొన్న పరిధిలో కనుగొనవలసిన దిగువ సరిహద్దు విలువను సూచిస్తుంది. Lower_bound() పద్ధతిని పిలిచినప్పుడు, అది అందించిన విలువ “val” కంటే ఎక్కువ లేదా సమానమైన కంటైనర్ యొక్క పేర్కొన్న పరిధిలోని మొదటి మూలకం కోసం శోధిస్తుంది.

కంప్: లోయర్_బౌండ్() పద్ధతి బైనరీ పోలిక ఫంక్షన్‌ను దాని నాల్గవ పరామితిగా కూడా అంగీకరించవచ్చు. దీనికి రెండు వాదనలు అవసరమవుతాయి: సూచించిన రకం ఫార్వర్డ్‌ఇటరేటర్ , మరియు రెండవది విలువ . ఫంక్షన్ రెండు ఆర్గ్యుమెంట్‌ల మధ్య పోలిక ఆధారంగా బూలియన్ విలువను అందిస్తుంది. కాంప్ ఆర్గ్యుమెంట్ దాని ఆర్గ్యుమెంట్‌లలో దేనినీ మార్చదు మరియు అది ఫంక్షన్ పాయింటర్ లేదా ఫంక్షన్ ఆబ్జెక్ట్ మాత్రమే కావచ్చు.

రిటర్న్ విలువ

దిగువ_బౌండ్() ఒక ఇటరేటర్‌ను అందిస్తుంది, అది మొదటి మూలకం వైపు కంటే ఎక్కువ లేదా సమానంగా ఉంటుంది విలువ . కంటైనర్ యొక్క పేర్కొన్న పరిధిలోని అన్ని మూలకాలు ఇచ్చిన విలువ కంటే తక్కువగా ఉంటే విలువ , low_bound() పద్ధతి పరిధిలోని చివరి మూలకాన్ని సూచించే ఇటరేటర్‌ని అందిస్తుంది మరియు అన్ని మూలకాలు దాని కంటే ఎక్కువగా ఉంటే విలువ , ఇది పరిధిలోని మొదటి మూలకాన్ని సూచించే ఇటరేటర్‌ను ఇస్తుంది.

ఉదాహరణ కోడ్

ఈ C++ కోడ్ క్రమబద్ధీకరించబడిన వెక్టార్‌లో ఇవ్వబడిన విలువ కంటే తక్కువ లేని మొదటి మూలకాన్ని కనుగొనడానికి std::lower_bound() ఫంక్షన్‌ని ఉపయోగించడాన్ని ప్రదర్శిస్తుంది.

# చేర్చండి

int ప్రధాన ( )

{

// ఇన్‌పుట్ వెక్టార్

std :: వెక్టర్ < రెట్టింపు > విలువలు { 10 , పదిహేను , ఇరవై , 25 , 30 } ;

// ప్రింట్ వెక్టర్

std :: కోట్ << 'వెక్టర్ కలిగి ఉంది:' ;

కోసం ( సంతకం చేయలేదు int i = 0 ; i < విలువలు. పరిమాణం ( ) ; i ++ )

std :: కోట్ << '' << విలువలు [ i ] ;

std :: కోట్ << ' \n ' ;

std :: వెక్టర్ < రెట్టింపు >:: పునరావృతం చేసేవాడు అది1 , అది2 , అది3 ;

// std :: lower_bound

అది1 = std :: దిగువ_బౌండ్ ( విలువలు. ప్రారంభం ( ) , విలువలు. ముగింపు ( ) , 13 ) ;

అది2 = std :: దిగువ_బౌండ్ ( విలువలు. ప్రారంభం ( ) , విలువలు. ముగింపు ( ) , 23 ) ;

అది3 = std :: దిగువ_బౌండ్ ( విలువలు. ప్రారంభం ( ) , విలువలు. ముగింపు ( ) , 33 ) ;

std :: కోట్

<< ' \n స్థానం వద్ద మూలకం 13 కోసం దిగువ_బౌండ్: '

<< ( అది1 - విలువలు. ప్రారంభం ( ) ) ;

std :: కోట్

<< ' \n స్థానం వద్ద మూలకం 23 కోసం దిగువ_బౌండ్: '

<< ( అది2 - విలువలు. ప్రారంభం ( ) ) ;

std :: కోట్

<< ' \n స్థానం వద్ద మూలకం 33 కోసం దిగువ_బౌండ్: '

<< ( అది3 - విలువలు. ప్రారంభం ( ) ) ;

తిరిగి 0 ;

}

std:: వెక్టర్ రకం డబుల్-నేమ్డ్ విలువలను నిర్వచించడం ద్వారా మరియు కొన్ని విలువలతో దాన్ని ప్రారంభించడం ద్వారా కోడ్ ప్రారంభమవుతుంది. ఇది వెక్టార్ యొక్క మూలకాలను లూప్ కోసం ఉపయోగించి ముద్రిస్తుంది.

తరువాత, కోడ్ మూడు std:: vector:: it1, it2 మరియు it3 అనే ఇటరేటర్ వేరియబుల్స్‌ని ప్రకటించింది. విభిన్న ఆర్గ్యుమెంట్‌లతో విలువల వెక్టర్‌పై std::lower_bound() కాలింగ్ ఫలితాలను నిల్వ చేయడానికి ఈ వేరియబుల్స్ ఉపయోగించబడతాయి.

std::lower_bound() ఫంక్షన్ మూడు విభిన్న విలువలతో పిలువబడుతుంది: 13, 23 మరియు 33. ప్రతి కాల్‌లో, దిగువ_బౌండ్() వెక్టార్‌లోని మొదటి మూలకం వైపు కంటే ఎక్కువ లేదా సమానంగా ఉండే ఇటరేటర్‌ను ఇస్తుంది. పేర్కొన్న విలువ.

std::lower_bound() ద్వారా అందించబడిన ఇటరేటర్ నుండి విలువలు.begin() ఇటరేటర్‌ను తీసివేయడం ద్వారా వెక్టార్‌లోని ఈ మూలకాల స్థానాలను కోడ్ ముద్రిస్తుంది, ఇది వెక్టార్‌లోని మూలకం యొక్క సూచికను ఇస్తుంది.

అవుట్‌పుట్

ముగింపు

C++లో దిగువ_బౌండ్() పద్ధతి క్రమబద్ధీకరించబడిన కంటైనర్‌లో ఇచ్చిన విలువ యొక్క మొదటి సంఘటనను కనుగొంటుంది. ఇది C++లోని లైబ్రరీలో ఒక భాగం మరియు శ్రేణులు, వెక్టర్‌లు మరియు ఇతర క్రమబద్ధీకరించబడిన కంటైనర్‌లపై బైనరీ శోధనలను నిర్వహించడానికి ఉపయోగించవచ్చు. పద్ధతి అందించిన విలువ కంటే తక్కువ లేని పరిధిలో మొదటి మూలకం వైపు సూచించే ఇటరేటర్‌ను ఇస్తుంది. ఈ కథనంలో low_bound() పద్ధతి గురించి మరింత చదవండి.