আমার বাইনারি অনুসন্ধান অ্যালগরিদম প্রয়োজন যা সি ++ এসটিএল ধারকগুলির সাথে সামঞ্জস্যপূর্ণ, std::binary_search
স্ট্যান্ডার্ড লাইব্রেরির <algorithm>
শিরোনামের মতো কিছু , তবে আমার পুনরুক্তিটি পুনরুদ্ধার করা দরকার যা ফলাফলটি নির্দেশ করে, উপাদানটি উপস্থিত থাকলে আমাকে বলার মতো সরল বুলিয়ান নয়।
(সাইড নোটে, তারা বাইনারি_সার্চের জন্য এপিআই সংজ্ঞায়িত করার সময় স্ট্যান্ডার্ড কমিটি কী ভাবছিল ?!)
এখানে আমার প্রধান উদ্বেগটি হ'ল আমার বাইনারি অনুসন্ধানের গতি প্রয়োজন, সুতরাং যদিও আমি অন্যান্য অ্যালগরিদমের সাথে ডেটা পেতে পারি, নীচে উল্লিখিত হিসাবে, আমি বাইনারিটির সুবিধা পাওয়ার জন্য আমার ডেটা সাজিয়ে রেখেছি এই সত্যের সুবিধা নিতে চাই অনুসন্ধান, লিনিয়ার অনুসন্ধান নয়।
এতদূর lower_bound
এবং upper_bound
ডেটাম অনুপস্থিত থাকলে ব্যর্থ:
//lousy pseudo code
vector(1,2,3,4,6,7,8,9,0) //notice no 5
iter = lower_bound_or_upper_bound(start,end,5)
iter != 5 && iter !=end //not returning end as usual, instead it'll return 4 or 6
দ্রষ্টব্য: আমি এমন একটি অ্যালগরিদম ব্যবহার করে জরিমানা করছি যেটি কনটেইনারগুলির সাথে সামঞ্জস্য হওয়া অবধি স্টাড নেমস্পেসের সাথে সম্পর্কিত নয়। লাইক, বলুন boost::binary_search
,।