C++ জোড়ার ভেক্টর প্রদর্শন এবং জোড়ার ভেক্টর বাছাই করার সুবিধা প্রদান করে। C++-এ একটি ধারক রয়েছে যা দুটি মান ধারণ করে যা একে অপরের সাথে ম্যাপ করা হয় একটি 'জোড়া' এবং একটি 'পেয়ারের ভেক্টর' যা একটি ভেক্টর যেটিতে এই জোড়াগুলির অনেকগুলি রয়েছে। বাছাই করার অর্থ হল প্রয়োজনীয়তা অনুসারে ডেটাকে আরোহী বা অবরোহ ক্রমে সাজানো। এখানে, আমরা শিখব কিভাবে C++ প্রোগ্রামিং-এ জোড়ার ভেক্টরকে সাজাতে হয়। আমরা C++ এ 'অ্যাসেন্ডিং' এবং 'ডিসেন্ডিং' উভয় ক্রমে জোড়ার ভেক্টর সাজাতে পারি। 'sort()' পদ্ধতি ব্যবহার করে আমরা সহজেই জোড়ার ভেক্টরকে সাজাতে পারি। জোড়ার ভেক্টর সাজানোর জন্য এখানে কিছু কোড করি।
উদাহরণ 1:
আসুন এখানে হেডার ফাইলটি অন্তর্ভুক্ত করে কোডটি শুরু করি যা হল “bits/stdc++.h”। এই হেডার ফাইলটি থাকার পরে, আমাদের আরও হেডার ফাইল অন্তর্ভুক্ত করার দরকার নেই কারণ এতে সমস্ত প্রয়োজনীয় লাইব্রেরি রয়েছে। তারপর, আমরা 'std' নামস্থান যোগ করি এবং 'main()' ফাংশনটিকে কল করি।
এখন, আমরা 'my_vect' নামে একটি 'পেয়ারের ভেক্টর' ঘোষণা করি এবং 'int' ডেটা টাইপ রাখি যাতে আমরা এই জোড়াগুলিতে যে ডেটা প্রবেশ করি তা হয় 'পূর্ণসংখ্যা' ডেটা টাইপ। এর নিচে, আমরা 'my_arr1[]' এবং 'my_arr2[]' নামের দুটি অ্যারে শুরু করি। এখানে, আমরা এই অ্যারে মানগুলির সাথে জোড়ার প্রথম এবং দ্বিতীয় মানগুলি শুরু করি। তারপর, আমরা এই মানগুলি জোড়ার ভেক্টরে প্রবেশ করতে 'for' লুপ ব্যবহার করি। এখানে, আমরা 'push_back()' ফাংশন ব্যবহার করি যা ভেক্টরের শেষে মান সন্নিবেশ করতে সাহায্য করে। এই ফাংশনের ভিতরে, আমরা 'make_pair' বিকল্পটি রাখি যা 'my_arr1' এবং 'my_arr2' এর দুটি মানের পেয়ার অবজেক্ট তৈরি করতে ব্যবহার করা হয়।
এর পরে, আমরা আবার 'for' লুপ ব্যবহার করে জোড়ার ভেক্টর প্রিন্ট করি। এখানে, জোড়ার ভেক্টরের প্রথম এবং দ্বিতীয় মান পেতে 'প্রথম' এবং 'দ্বিতীয়' কীওয়ার্ড যোগ করা হয়েছে। এটি এখানে বাছাই না করে জোড়ার ভেক্টর প্রিন্ট করে। এখন, আমরা জোড়ার ভেক্টর সাজানোর জন্য 'sort()' ফাংশন ব্যবহার করি। এখানে, 'begin()' এবং 'end()' ফাংশনগুলি এই 'sort()' ফাংশনে জোড়ার ভেক্টরের শুরু এবং শেষ পাস করার জন্য নিযুক্ত করা হয়।
সাজানোর পর, আমরা 'cout' ব্যবহার করে আবার জোড়ার ভেক্টর প্রিন্ট করি এবং 'my_vec[i]' দিয়ে প্রথম এবং দ্বিতীয় কীওয়ার্ড রাখি। এখন, জোড়ার সাজানো ভেক্টরও এখানে মুদ্রিত হয়।
কোড 1:
#includeনামস্থান std ব্যবহার করে;
int প্রধান ( )
{
ভেক্টর < জোড়া < তুমি, তুমি > > my_vect;
int my_arr1 [ ] = { 49 , বিশ , পনের , 56 } ;
int my_arr2 [ ] = { 37 , বিশ , 90 , 55 } ;
int num = sizeof ( my_arr1 ) / আকার ( my_arr1 [ 0 ] ) ;
জন্য ( int i = 0 ; i < কিনা i++ )
my_vect.push_back ( make_pair ( my_arr1 [ i ] , my_arr2 [ i ] ) ) ;
cout << 'জোড়ার ভেক্টর বাছাই করার আগে: ' << endl;
জন্য ( int i = 0 ; i < কিনা i++ )
{
cout << my_vect [ i ] .প্রথম << ''
<< my_vect [ i ] .সেকেন্ড << endl;
}
সাজান ( my_vect.begin ( ) , my_vect.end ( ) ) ;
cout << ' \n জোড়ার ভেক্টর বাছাই করার পরে: ' << endl;
জন্য ( int i = 0 ; i < কিনা i++ )
{
cout << my_vect [ i ] .প্রথম << ''
<< my_vect [ i ] .সেকেন্ড << endl;
}
ফিরে 0 ;
}
আউটপুট:
সাজানোর আগে জোড়ার ভেক্টর প্রথমে প্রদর্শিত হয়। তারপর, আমরা জোড়ার এই ভেক্টরে সাজানোর কৌশল প্রয়োগ করি। তারপর, জোড়ার সাজানো ভেক্টরও এখানে প্রদর্শিত হয়। আমরা দেখতে পাচ্ছি যে জোড়ার ভেক্টর জোড়ার প্রথম উপাদানের উপর ভিত্তি করে আরোহী ক্রমে সাজানো হয়েছে।
উদাহরণ 2:
এই উদাহরণে, আমরা এখন 'ভেক্টর_1' নামে একটি 'পেয়ারের ভেক্টর' তৈরি করি এবং 'int' ডেটা টাইপ বরাদ্দ করি যার অর্থ এই জোড়াগুলিতে আমরা যে তথ্য প্রবেশ করি তা 'পূর্ণসংখ্যা' ডেটা টাইপের। 'first_arr[]' এবং 'second_arr[]' নামের দুটি অ্যারে নিচের দিকে শুরু করা হয়েছে। এখানে, আমরা প্রথম এবং দ্বিতীয় জোড়ার মানগুলির জন্য এই অ্যারেগুলির মানগুলি শুরু করি।
এর পরে, আমরা এই মানগুলিকে 'for' লুপ ব্যবহার করে জোড়ার ভেক্টরে প্রবেশ করি। 'make_pair' বিকল্পটি, যা 'first_arr[]' এবং 'second_arr[]' অ্যারে থেকে দুটি মানের পেয়ার অবজেক্ট তৈরি করতে ব্যবহৃত হয়, এটি 'push_back()' পদ্ধতির ভিতরে স্থাপন করা হয় যা আইটেমগুলিকে সন্নিবেশ করতে সাহায্য করে ভেক্টরের শেষ।
এরপর, আমরা জোড়ার ভেক্টর আউটপুট করতে আরও একবার 'for' লুপ ব্যবহার করি। জোড়ার ভেক্টরের প্রথম এবং দ্বিতীয় মান পেতে, 'প্রথম' এবং 'দ্বিতীয়' কীওয়ার্ড সন্নিবেশ করা হয়। এটি এই সময়ে কোনো সাজানো ছাড়াই জোড়া ভেক্টরকে আউটপুট করে। আমরা এখন 'সর্ট()' ফাংশনকে অবরোহী ক্রমে ব্যবহার করে 'জোড়ার ভেক্টর' সাজাই। এই ফাংশনে, আমরা 'rbegin()' এবং 'rend()' ফাংশন রাখি যাতে এটি সাজানোর বিপরীত করবে এবং পেয়ারের মানের শেষ থেকে শুরু করবে। এটি তাদের সাজানো ক্রমানুসারে।
বাছাই করার পরে, আমরা 'cout' ব্যবহার করি আর একবার 'for' লুপ ব্যবহার করার পর জোড়ার ভেক্টর আউটপুট করার জন্য, 'cout' এ 'vector_1[i]' সহ প্রথম এবং দ্বিতীয় কীওয়ার্ড সন্নিবেশ করান। এখানেই জোড়ার সাজানো ভেক্টরও মুদ্রিত হয়।
কোড 2:
#includeনামস্থান std ব্যবহার করে;
int প্রধান ( )
{
ভেক্টর < জোড়া < তুমি, তুমি > > ভেক্টর_1;
int first_arr [ ] = { 77 , 29 , 97 , পনের } ;
int second_arr [ ] = { 35 , ৮৯ , 64 , 25 } ;
int s = sizeof ( first_arr ) / আকার ( first_arr [ 0 ] ) ;
জন্য ( int i = 0 ; i < s; i++ )
ভেক্টর_1.পুশ_ব্যাক ( make_pair ( first_arr [ i ] , second_arr [ i ] ) ) ;
cout << 'বাছাই করার আগে:' << endl;
জন্য ( int i = 0 ; i < s; i++ ) {
cout << ভেক্টর_1 [ i ] .প্রথম << '' << ভেক্টর_1 [ i ] .সেকেন্ড
<< endl;
}
সাজান ( vector_1.rbegin ( ) , vector_1.rend ( ) ) ;
cout << endl << 'বাছাই করার পরে:' << endl;
জন্য ( int i = 0 ; i < s; i++ ) {
cout << ভেক্টর_1 [ i ] .প্রথম << '' << ভেক্টর_1 [ i ] .সেকেন্ড
<< endl;
}
ফিরে 0 ;
}
আউটপুট:
জোড়ার প্রাক-বাছাই ভেক্টরটি প্রথমে এখানে দেখানো হয়েছে, তারপরে জোড়ার সাজানো ভেক্টর যা এখানে সাজানোর প্রক্রিয়া প্রয়োগ করার পরে একইভাবে দেখানো হয়েছে। যেমনটি আমরা দেখতে পাচ্ছি, প্রতিটি জোড়ার প্রাথমিক উপাদান নির্ধারণ করে কিভাবে জোড়ের ভেক্টরকে নিচের ক্রমে সাজানো হয়।
উদাহরণ 3:
এখানে, আমরা ভেক্টর সংখ্যা সাজানোর জন্য 'bool' টাইপের একটি ফাংশন তৈরি করি যার নাম 'sortBySecElement'। এই ফাংশনে, আমরা একটি শর্ত রাখি, “value1.second < value2.second”, যা জোড়ার উভয় ভেক্টরের দ্বিতীয় মানের তুলনা করে এবং সংখ্যা প্রদান করে।
তারপর, 'main()' নিচের অংশে বলা হয়েছে যেখানে আমরা জোড়ার ভেক্টর তৈরি করি। নিম্নলিখিতটি 'new_array1[]' এবং 'new_aray2[]' নামে দুটি অ্যারে শুরু করে। এখানে, আমরা এই অ্যারেগুলিতে জোড়ার মান সন্নিবেশ করি। এর পরে, আমরা এই মানগুলি জোড়ার ভেক্টরে ইনপুট করতে 'for' লুপ ব্যবহার করি। 'পুশ_ব্যাক()' পদ্ধতির ভিতরে, যা ভেক্টরের শেষে আইটেম সন্নিবেশ করতে সাহায্য করে, হল 'make_pair' বিকল্প যা 'new_array1[]' এবং 'new_array2[ থেকে দুটি মানের জোড়া বস্তু তৈরি করতে ব্যবহার করা হয়। ]' অ্যারে।
তারপরে আমরা আরেকটি 'for' লুপ ব্যবহার করে জোড়ার ভেক্টর আউটপুট করি। জোড়ার ভেক্টরের প্রথম এবং দ্বিতীয় মান পেতে 'প্রথম' এবং 'দ্বিতীয়' কীওয়ার্ডগুলি সন্নিবেশ করা হয়। এই পর্যায়ে কোন বাছাই করা হয় না, এবং জোড়া ভেক্টর আউটপুট করা হয়। আমরা এখন এটি সাজানোর জন্য 'sort()' ফাংশন ব্যবহার করি। এই ক্ষেত্রে 'begin()' এবং 'end()' ফাংশন ব্যবহারের মাধ্যমে 'sort()' ফাংশনে জোড়ের ভেক্টরের শুরু এবং শেষ সরবরাহ করা হয়। আমরা 'sortBySecElement' ফাংশনটিও রাখি যা আমরা পূর্বে এই 'sort()' ফাংশনের ভিতরে তৈরি করেছি যেখানে আমরা ভেক্টরের দ্বিতীয় উপাদান থেকে জোড়ার ভেক্টর বাছাইয়ের প্যাটার্ন ঊর্ধ্বক্রমে সেট করেছি।
এখন, আমরা আবার 'for' লুপ ব্যবহার করি। তারপর, বাছাই করার পরে আবার জোড়ার ভেক্টর তৈরি করতে 'cout'-এ 'new_vec[i]' দিয়ে প্রথম এবং দ্বিতীয় কীওয়ার্ড সন্নিবেশ করা হয়। এখানেও এখন আরোহী ক্রমে জোড়ার সাজানো ভেক্টর মুদ্রিত হয়।
কোড 3:
#includeনামস্থান std ব্যবহার করে;
bool sortBySecElement ( const জোড়া < তুমি, তুমি > এবং মান1,
const জোড়া < তুমি, তুমি > এবং মান2 )
{
ফিরে ( মান1.সেকেন্ড < মান2.সেকেন্ড ) ;
}
int প্রধান ( )
{
ভেক্টর < জোড়া < তুমি, তুমি > > নতুন জিনিস
int new_arr1 [ ] = { 3. 4 , 29 , 65 , 48 } ;
int new_arr2 [ ] = { 67 , 19 , 54 , 7 } ;
int মান = sizeof ( new_arr1 ) / আকার ( new_arr1 [ 0 ] ) ;
জন্য ( int i = 0 ; i < মান i++ )
new_vec.push_back ( make_pair ( new_arr1 [ i ] , new_arr2 [ i ] ) ) ;
cout << 'বাছাই করার আগে:' << endl;
জন্য ( int i = 0 ; i < মান i++ )
{
cout << নতুন জিনিস [ i ] .প্রথম << ''
<< নতুন জিনিস [ i ] .সেকেন্ড << endl;
}
সাজান ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;
cout << endl << 'বাছাই করার পরে:' << endl;
জন্য ( int i = 0 ; i < মান i++ )
{
cout << নতুন জিনিস [ i ] .প্রথম << ''
<< নতুন জিনিস [ i ] .সেকেন্ড << endl;
}
ফিরে 0 ;
}
আউটপুট:
এখানে, জোড়ার সাজানো ভেক্টর প্রদর্শিত হয় এবং জোড়ার দ্বিতীয় মান অনুযায়ী সাজানো হয়। জোড়ার দ্বিতীয় উপাদান আরোহী ক্রমে সংরক্ষণ করা হয় এবং এখানে প্রদর্শিত হয়।
উপসংহার
এই নির্দেশিকাটি C++-এ 'সর্ট ভেক্টর অফ জোয়ার' সম্পর্কে। আমরা ক্রমবর্ধমান এবং অবরোহী ক্রমে 'জোড়ের ভেক্টর' বাছাই না করে 'জোড়ার ভেক্টর' অন্বেষণ করেছি। আমরা C++ প্রোগ্রামিং-এ এই জোড়াগুলির প্রথম এবং দ্বিতীয় সংখ্যা অনুসারে 'জোড়ার ভেক্টর' বাছাই করার উদাহরণ দিয়ে এটিকে চিত্রিত করেছি। আমরা শিখেছি যে 'সর্ট()' পদ্ধতিটি এই সাজানোর কাজে সাহায্য করে।