C++ এ Lower_Bound() পদ্ধতি কি?

C E Lower Bound Pad Dhati Ki



C++ প্রোগ্রামিং ভাষা ব্যাপকভাবে ব্যবহৃত ফাংশন এবং পদ্ধতির বিস্তৃত পরিসর সরবরাহ করে। Lower_bound() পদ্ধতিটি এমন একটি ফাংশন যা একটি সাজানো পাত্রে একটি প্রদত্ত মানের প্রথম উপস্থিতি খুঁজে পেতে ব্যবহৃত হয়। এই নিবন্ধটি সিনট্যাক্স, প্যারামিটার, রিটার্ন মান এবং C++ এ low_bound() পদ্ধতির জন্য একটি উদাহরণ কোড কভার করে।

Lower_bound() পদ্ধতি কি?

C++ এর নিম্ন_বাউন্ড() পদ্ধতিটি একটি সাজানো পাত্রে প্রদত্ত মানের প্রথম উপস্থিতি খুঁজে পায়। এটি C++ এ <অ্যালগরিদম> লাইব্রেরির একটি অংশ এবং অ্যারে, ভেক্টর এবং অন্যান্য সাজানো পাত্রে বাইনারি অনুসন্ধান করতে ব্যবহৃত হয়। Lower_bound() পদ্ধতিটি একটি পুনরাবৃত্তিকারী প্রদান করে যা একটি ধারকটির একটি নির্দিষ্ট পরিসরের প্রথম উপাদানটিকে নির্দেশ করে, যা প্রদত্ত মানের থেকে কম নয়।

বাক্য গঠন







C++-এ Lower_bound() পদ্ধতির দুটি ভিন্নতা রয়েছে: একটি ডিফল্ট এবং একটি কাস্টম সিনট্যাক্স।



ডিফল্ট সিনট্যাক্স

ডিফল্ট সিনট্যাক্স একটি ForwardIterator-এ লাগে যা যথাক্রমে অনুসন্ধান করা সীমার প্রথম এবং শেষ উপাদানগুলির দিকে নির্দেশ করে এবং পরিসরের উপাদানগুলির তুলনা করার জন্য একটি মান৷



ForwardIterator low_bound ( ForwardIterator প্রথমে , ForwardIterator শেষ , const টি এবং ভাল ) ;

কাস্টম সিনট্যাক্স

কাস্টম সিনট্যাক্স অতিরিক্তভাবে একটি ব্যবহারকারী-সংজ্ঞায়িত বাইনারি প্রিডিকেট ফাংশন গ্রহণ করে যা উপাদানগুলিকে অর্ডার করার জন্য কঠোর দুর্বল ক্রম অনুসরণ করে।





ForwardIterator low_bound ( ForwardIterator প্রথমে , ForwardIterator শেষ , const টি এবং ভাল , কম তুলনা করুন ) ;

পরামিতি

C++-এ Lower_bound() পদ্ধতিতে তিনটি প্যারামিটার লাগে।

শুরু শেষ: প্রথম দুটি প্যারামিটার, 'প্রথম' এবং 'শেষ', পরিসীমা নির্ধারণ করে [প্রথম, শেষ) যার মধ্যে পদ্ধতিটি নিম্ন সীমার জন্য অনুসন্ধান করে। পরিসীমা দুটি পরামিতি দ্বারা নির্দিষ্ট করা হয়, যথা 'প্রথম' এবং 'শেষ'। পরিসরে 'প্রথম' এবং 'শেষ' পুনরাবৃত্তিকারীর মধ্যে থাকা সমস্ত উপাদান অন্তর্ভুক্ত থাকে তবে 'শেষ' পুনরাবৃত্তিকারী দ্বারা নির্দেশিত উপাদানটি বাদ দেয়।



ভাল: Lower_bound() পদ্ধতির তৃতীয় প্যারামিটারটিকে 'val' হিসাবে উল্লেখ করা হয়। এটি নিম্ন সীমার মানকে প্রতিনিধিত্ব করে যা নির্দিষ্ট পরিসরের মধ্যে পাওয়া দরকার। যখন Lower_bound() মেথড কল করা হয়, তখন এটি একটি কন্টেইনারের নির্দিষ্ট পরিসরের মধ্যে প্রথম উপাদানটি অনুসন্ধান করে যা প্রদত্ত মানের 'val' এর চেয়ে বড় বা সমান।

comp: Lower_bound() পদ্ধতিটি তার চতুর্থ প্যারামিটার হিসাবে একটি বাইনারি তুলনা ফাংশন গ্রহণ করতে পারে। এটি দুটি আর্গুমেন্ট লাগে: টাইপ দ্বারা নির্দেশিত ForwardIterator , এবং দ্বিতীয় হল ভাল . তারপর ফাংশন দুটি আর্গুমেন্টের মধ্যে তুলনার ভিত্তিতে একটি বুলিয়ান মান প্রদান করে। কম্প আর্গুমেন্ট তার কোন আর্গুমেন্ট পরিবর্তন করে না এবং এটি শুধুমাত্র একটি ফাংশন পয়েন্টার বা একটি ফাংশন অবজেক্ট হতে পারে।

ফেরত মূল্য

Lower_bound() একটি পুনরাবৃত্তিকারী প্রদান করে যা প্রথম উপাদানটির দিকে নির্দেশ করে যা এর থেকে বড় বা সমান ভাল . যদি একটি পাত্রের নির্দিষ্ট পরিসরের সমস্ত উপাদান প্রদত্ত মানের থেকে ছোট হয় ভাল , low_bound() পদ্ধতিটি পরিসরের শেষ উপাদানটির দিকে নির্দেশ করে একটি পুনরাবৃত্তিকারী প্রদান করে এবং যদি সমস্ত উপাদান এর থেকে বড় হয় ভাল , এটি একটি পুনরাবৃত্তিকারী দেয় যা পরিসরের প্রথম উপাদানটিকে নির্দেশ করে।

উদাহরণ কোড

এই C++ কোড std::lower_bound() ফাংশনের ব্যবহার প্রদর্শন করে একটি সাজানো ভেক্টরে প্রথম উপাদানটি খুঁজে পেতে যা একটি প্রদত্ত মানের চেয়ে কম নয়।

#include

int প্রধান ( )

{

// ইনপুট ভেক্টর

std :: ভেক্টর < দ্বিগুণ > মান { 10 , পনের , বিশ , 25 , 30 } ;

// প্রিন্ট ভেক্টর

std :: cout << 'ভেক্টরে রয়েছে:' ;

জন্য ( স্বাক্ষরবিহীন int i = 0 ; i < মান আকার ( ) ; i ++ )

std :: cout << '' << মান [ i ] ;

std :: cout << ' \n ' ;

std :: ভেক্টর < দ্বিগুণ >:: পুনরাবৃত্তিকারী এটা1 , এটা2 , এটা3 ;

// std :: low_bound

এটা1 = std :: নিম্ন সীমা ( মান শুরু ( ) , মান শেষ ( ) , 13 ) ;

এটা2 = std :: নিম্ন সীমা ( মান শুরু ( ) , মান শেষ ( ) , 23 ) ;

এটা3 = std :: নিম্ন সীমা ( মান শুরু ( ) , মান শেষ ( ) , 33 ) ;

std :: cout

<< ' \n অবস্থানে উপাদান 13 এর জন্য নিম্ন_সীমা: '

<< ( এটা1 - মান শুরু ( ) ) ;

std :: cout

<< ' \n অবস্থানে উপাদান 23 এর জন্য নিম্ন_সীমা: '

<< ( এটা2 - মান শুরু ( ) ) ;

std :: cout

<< ' \n অবস্থানে উপাদান 33 এর জন্য নিম্ন_সীমা: '

<< ( এটা3 - মান শুরু ( ) ) ;

ফিরে 0 ;

}

কোডটি শুরু হয় একটি std:: ভেক্টর টাইপের ডবল-নামযুক্ত মানের সংজ্ঞায়িত করে এবং কিছু মান দিয়ে শুরু করে। এটি তখন একটি ফর লুপ ব্যবহার করে ভেক্টরের উপাদানগুলি প্রিন্ট করে।

এরপর, কোডটি ঘোষণা করে তিনটি std::vector::iterator ভেরিয়েবল নামক it1, it2 এবং it3। এই ভেরিয়েবলগুলি বিভিন্ন আর্গুমেন্ট সহ মান ভেক্টরে std::lower_bound() কল করার ফলাফল সংরক্ষণ করতে ব্যবহার করা হবে।

std::lower_bound() ফাংশনটি তিনটি ভিন্ন মানের সাথে কল করা হয়: 13, 23, এবং 33। প্রতিটি কলে, low_bound() একটি ইটারেটর দেয় যা ভেক্টরের প্রথম উপাদানটির দিকে নির্দেশ করে যা এর চেয়ে বড় বা সমান। নির্দিষ্ট মান।

কোডটি তারপর std::lower_bound() দ্বারা প্রত্যাবর্তনকৃত ইটারেটর থেকে values.begin() ইটারেটর বিয়োগ করে ভেক্টরে এই উপাদানগুলির অবস্থানগুলি প্রিন্ট করে, যা ভেক্টরে উপাদানটির সূচক দেয়।

আউটপুট

উপসংহার

C++ এর নিম্ন_বাউন্ড() পদ্ধতিটি একটি সাজানো পাত্রে প্রদত্ত মানের প্রথম উপস্থিতি খুঁজে পায়। এটি C++-এ লাইব্রেরির একটি অংশ এবং অ্যারে, ভেক্টর এবং অন্যান্য সাজানো পাত্রে বাইনারি অনুসন্ধান করতে ব্যবহার করা যেতে পারে। পদ্ধতিটি একটি পুনরাবৃত্তিকারী দেয় যা একটি পরিসরের প্রথম উপাদানটির দিকে নির্দেশ করে যা প্রদত্ত মানের থেকে কম নয়। এই নিবন্ধে low_bound() পদ্ধতি সম্পর্কে আরও পড়ুন।