কম্পিউটার

C++ এ ভেক্টর না বাড়ার জন্য আপার বাউন্ড এবং লোয়ার বাউন্ড


এই নিবন্ধে আমরা C++ STL-এ অ-বর্ধিত ক্রমে সাজানো একটি অ্যারের জন্য ভেক্টর::upper_bound() এবং ভেক্টর::lower_bound() নিয়ে আলোচনা করতে যাচ্ছি।

ভেক্টরগুলি গতিশীল অ্যারেগুলির অনুরূপ; আমরা যেখানে মানটি সংরক্ষণ করছি সেই কন্টেইনারে যখনই একটি মান ঢোকানো বা সরানো হয় তখন তারা এর আকার নিজেই পরিবর্তন করার ক্ষমতা রাখে৷

একটি ভেক্টরে, নিম্ন আবদ্ধ একটি ইটারেটর প্রদান করে যে পরিসরের প্রথম উপাদানটির দিকে নির্দেশ করে যা প্রদত্ত মানের সাথে তুলনা করে না। আপার বাউন্ড প্রদত্ত মানের থেকে ছোট পরিসরে একটি পুনরাবৃত্তিকারী নির্দেশক উপাদান প্রদান করে।

ইনপুট

30 30 30 20 20 20 10 10

আউটপুট

Lower bound of 20= 3
Upper bound of 20= 6

ইনপুট

9 9 8 8 8 7 7 7 6 6 6 6

আউটপুট

Lower bound of 7= 5
Upper bound of 7= 8

রিটার্ন মান

এটি পরিসরের প্রথম উপাদানের দিকে নির্দেশ করে একটি পুনরাবৃত্তিকারী ফেরত দেয় এবং আবারও ফেরত দেয় এবং পরিসরের শেষ উপাদানটির দিকে নির্দেশ করে।

পদ্ধতি যা অনুসরণ করা যেতে পারে

  • প্রথমত, আমরা ভেক্টর শুরু করি।

  • তারপর আমরা ভেক্টর উপাদানকে অ-বর্ধিত ক্রমে সাজাই।

  • তারপর আমরা এর নিম্ন সীমা খুঁজে পাই।

  • তারপর আমরা এর উপরের সীমা খুঁজে পাই।

  • অবশেষে আমরা উভয় সীমানা মুদ্রণ করি।

উপরের পদ্ধতি ব্যবহার করে, আমরা যে কোনও ভেক্টরের নিম্ন সীমা এবং উপরের সীমা খুঁজে পেতে পারি, এটি নিম্ন এবং উপরের সীমা খুঁজে বের করার জন্য ভেক্টরকে সাজাতে হবে। যদি ভেক্টরটি সাজানো না হয়, তাহলে আমরা এর সীমা খুঁজে পাই না

উদাহরণ

/ / C++ program to demonstrate the working of lower bound and upper bound
#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {13,13,13,16,16,16,17,17,17,17,18,18}
   vector<int> v(vect, vect+8);
   sort (v.begin( ), v.end( ), greater<int>( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =! vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 17);
   up = upper_bound (v.begin( ), v.end( ), 17);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Sorted Vector: 18 18 17 17 17 17 16 16 16 13 13 13
Lower bound = 2
Upper bound = 6

উদাহরণ

#include<iosteam.h>
#include<vector.h>
Using namespace std;
int main ( ){
   int vect[ ] = {5,5,5,5,7,7 7,8,8,8,8,9,9,9,10,10}
   vector<int> v(vect, vect+16);
   sort (v.begin( ), v.end( ));
   cout<< “ \n Sorted Vector: ”;
   for( auto i = vect.begin( ), i =!vect.end( ), ++i)
      vector<int> iterator low, up;
   low = lower_bound (v.begin( ), v.end( ), 8);
   up = upper_bound (v.begin( ), v.end( ), 8);
   cout<<” Lower bound” << (lower – v.begin( ))<< “ \n”;
   cout<< “ Upper bound “<< (upper – v,begin( ))<<”\n”;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Sorted Vector: 10 10 9 9 9 8 8 8 8 7 7 7 5 5 5 5
Lower bound = 5
Upper bound = 9

  1. C++ এ লোয়ার দিয়ে উপরের তির্যক অদলবদল করুন

  2. C++ এ কিউবয়েডের আয়তন এবং সারফেস এরিয়ার জন্য প্রোগ্রাম

  3. C++ এ ঘনক্ষেত্রের আয়তন এবং সারফেস এরিয়ার জন্য প্রোগ্রাম

  4. উইন্ডোতে c++ এর জন্য শীর্ষ IDE কি?