C++ جوڑوں کا ویکٹر ترتیب دیں۔

C Jw W Ka Wyk R Trtyb Dy



C++ جوڑوں کے ویکٹر کو ظاہر کرنے اور جوڑوں کے ویکٹر کو ترتیب دینے کی سہولت فراہم کرتا ہے۔ C++ میں ایک کنٹینر ہے جس میں دو قدریں ہیں جو ایک دوسرے کے ساتھ میپ کی گئی ہیں جسے 'جوڑا' کہا جاتا ہے اور 'جوڑوں کا ویکٹر' جو ایک ایسا ویکٹر ہے جس میں ان میں سے بہت سے جوڑے ہوتے ہیں۔ چھانٹنے کا مطلب ہے ڈیٹا کو صعودی یا نزولی ترتیب میں تقاضوں کے مطابق ترتیب دینا۔ یہاں، ہم C++ پروگرامنگ میں جوڑوں کے ویکٹر کو ترتیب دینے کا طریقہ سیکھیں گے۔ ہم جوڑوں کے ویکٹر کو C++ میں 'صعودی' اور 'نزول' دونوں ترتیبوں میں ترتیب دے سکتے ہیں۔ ہم 'sort()' طریقہ استعمال کرکے جوڑوں کے ویکٹر کو آسانی سے ترتیب دے سکتے ہیں۔ آئیے جوڑوں کے ویکٹر کو ترتیب دینے کے لیے یہاں کچھ کوڈز کرتے ہیں۔

مثال 1:

آئیے یہاں ہیڈر فائل کو شامل کرکے کوڈ شروع کریں جو کہ 'bits/stdc++.h' ہے۔ یہ ہیڈر فائل رکھنے کے بعد، ہمیں مزید ہیڈر فائلوں کو شامل کرنے کی ضرورت نہیں ہے کیونکہ اس میں تمام ضروری لائبریریاں ہیں۔ پھر، ہم 'std' نام کی جگہ شامل کرتے ہیں اور 'main()' فنکشن کو کال کرتے ہیں۔







اب، ہم 'مائی_ویکٹ' نامی 'جوڑوں کے ویکٹر' کا اعلان کرتے ہیں اور 'int' ڈیٹا کی قسم ڈالتے ہیں تاکہ جو ڈیٹا ہم ان جوڑوں میں داخل کریں وہ 'انٹیجر' ڈیٹا ٹائپ ہو۔ اس کے نیچے، ہم دو صفوں کو 'my_arr1[]' اور 'my_arr2[]' کے ناموں سے شروع کرتے ہیں۔ یہاں، ہم ان صف کی قدروں کے ساتھ جوڑوں کی پہلی اور دوسری قدروں کو شروع کرتے ہیں۔ پھر، ہم ان اقدار کو جوڑوں کے ویکٹر میں داخل کرنے کے لیے 'for' لوپ کا استعمال کرتے ہیں۔ یہاں، ہم 'push_back()' فنکشن استعمال کرتے ہیں جو ویکٹر کے آخر میں اقدار کو داخل کرنے میں مدد کرتا ہے۔ اس فنکشن کے اندر، ہم 'make_pair' آپشن رکھتے ہیں جو 'my_arr1' اور 'my_arr2' کی دو قدروں کے جوڑے آبجیکٹ کو بنانے کے لیے استعمال کیا جاتا ہے۔



اس کے بعد، ہم 'for' لوپ کو دوبارہ استعمال کرکے جوڑوں کے ویکٹر کو پرنٹ کرتے ہیں۔ یہاں، جوڑوں کے ویکٹر کی پہلی اور دوسری قدریں حاصل کرنے کے لیے 'پہلا' اور 'دوسرا' کلیدی الفاظ شامل کیے جاتے ہیں۔ یہ یہاں چھانٹنے کے بغیر جوڑوں کے ویکٹر کو پرنٹ کرتا ہے۔ اب، ہم جوڑوں کے ویکٹر کو ترتیب دینے کے لیے 'sort()' فنکشن کا استعمال کرتے ہیں۔ یہاں، 'begin()' اور 'end()' فنکشنز استعمال کیے جاتے ہیں جیسا کہ اس 'sort()' فنکشن میں جوڑوں کے ویکٹر کے آغاز اور اختتام کو پاس کیا جاتا ہے۔



چھانٹنے کے بعد، ہم 'cout' کو استعمال کرکے دوبارہ جوڑوں کے ویکٹر کو پرنٹ کرتے ہیں اور پہلے اور دوسرے مطلوبہ الفاظ کو 'my_vec[i]' کے ساتھ رکھتے ہیں۔ اب، جوڑوں کا ترتیب شدہ ویکٹر بھی یہاں پرنٹ کیا گیا ہے۔





کوڈ 1:

# شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے std؛

اہم int ( )

{

ویکٹر < جوڑی < تم، تم > > my_vect

int my_arr1 [ ] = { 49 , بیس , پندرہ , 56 } ;

int my_arr2 [ ] = { 37 , بیس , 90 , 55 } ;

int num = sizeof ( my_arr1 ) / کا سائز ( my_arr1 [ 0 ] ) ;

کے لیے ( int میں = 0 ; میں < چاہے i++ )

my_vect.push_back ( بنائیں_جوڑا ( my_arr1 [ میں ] ,my_arr2 [ میں ] ) ) ;

cout << 'جوڑوں کے ویکٹر کو چھانٹنے سے پہلے:' << endl

کے لیے ( int میں = 0 ; میں < چاہے i++ )

{

cout << میرا_ویکٹ [ میں ] .پہلا << '

<< میرا_ویکٹ [ میں ] دوسرا << endl

}

ترتیب دیں ( my_vect.begin ( ) , my_vect.end ( ) ) ;

cout << ' \n جوڑوں کے ویکٹر کو چھانٹنے کے بعد: ' << endl

کے لیے ( int میں = 0 ; میں < چاہے i++ )

{

cout << میرا_ویکٹ [ میں ] .پہلا << '

<< میرا_ویکٹ [ میں ] دوسرا << endl

}

واپسی 0 ;

}



آؤٹ پٹ:

چھانٹنے سے پہلے جوڑوں کا ویکٹر پہلے ظاہر ہوتا ہے۔ پھر، ہم جوڑوں کے اس ویکٹر پر چھانٹنے کی تکنیک کا اطلاق کرتے ہیں۔ پھر، جوڑوں کا ترتیب شدہ ویکٹر بھی یہاں ظاہر ہوتا ہے۔ ہم دیکھ سکتے ہیں کہ جوڑوں کے ویکٹر کو جوڑے کے پہلے عنصر کی بنیاد پر صعودی ترتیب میں ترتیب دیا گیا ہے۔

مثال 2:

اس مثال میں، ہم اب ایک 'جوڑوں کا ویکٹر' بناتے ہیں جسے 'vector_1' کہتے ہیں اور 'int' ڈیٹا کی قسم تفویض کرتے ہیں جس کا مطلب ہے کہ جو معلومات ہم ان جوڑوں میں داخل کرتے ہیں وہ 'انٹیجر' ڈیٹا کی قسم کی ہے۔ 'first_arr[]' اور 'second_arr[]' کے ناموں والی دو صفیں درج ذیل میں شروع کی گئی ہیں۔ یہاں، ہم پہلے اور دوسرے جوڑے کی قدروں کے لیے ان صفوں کی قدروں کو شروع کرتے ہیں۔

اگلا، ہم ان اقدار کو 'for' لوپ کا استعمال کرتے ہوئے جوڑوں کے ویکٹر میں داخل کرتے ہیں۔ 'make_pair' آپشن، جو 'first_arr[]' اور 'second_arr[]' arrays سے دو قدروں کا جوڑا آبجیکٹ بنانے کے لیے استعمال کیا جاتا ہے، 'push_back()' طریقہ کے اندر رکھا گیا ہے جو آئٹمز کو داخل کرنے میں مدد کرتا ہے۔ ویکٹر کا اختتام.

اگلا، ہم جوڑوں کے ویکٹر کو آؤٹ پٹ کرنے کے لیے ایک بار پھر 'for' لوپ کا استعمال کرتے ہیں۔ جوڑوں کے ویکٹر کی پہلی اور دوسری قدروں کو حاصل کرنے کے لیے، 'پہلا' اور 'دوسرا' کلیدی الفاظ داخل کیے جاتے ہیں۔ یہ اس مقام پر بغیر کسی چھانٹی کے جوڑے کے ویکٹر کو آؤٹ پٹ کرتا ہے۔ اب ہم نزولی ترتیب میں 'sort()' فنکشن کا استعمال کرتے ہوئے 'جوڑوں کے ویکٹر' کو ترتیب دیتے ہیں۔ اس فنکشن میں، ہم 'rbegin()' اور 'rend()' فنکشنز کو جگہ دیتے ہیں تو یہ ترتیب کو ریورس کرے گا اور جوڑے کی قدروں کے اختتام سے شروع ہوگا۔ یہ انہیں نزولی ترتیب میں ترتیب دیتا ہے۔

چھانٹنے کے بعد، ہم ایک بار پھر 'for' لوپ کو استعمال کرنے کے بعد جوڑوں کے ویکٹر کو آؤٹ پٹ کرنے کے لیے 'cout' کا استعمال کرتے ہیں، 'cout' میں 'vector_1[i]' کے ساتھ پہلے اور دوسرے کلیدی الفاظ داخل کرتے ہیں۔ یہ وہ جگہ ہے جہاں جوڑیوں کا ترتیب شدہ ویکٹر بھی پرنٹ ہوتا ہے۔

کوڈ 2:

#include

نام کی جگہ کا استعمال کرتے ہوئے std؛

اہم int ( )

{

ویکٹر < جوڑی < تم، تم > > vector_1;

int first_arr [ ] = { 77 ، 29 ، 97 ، پندرہ } ;

int second_arr [ ] = { 35 ، 89 ، 64 ، 25 } ;

int s = sizeof ( first_arr ) / کا سائز ( first_arr [ 0 ] ) ;

کے لیے ( int i = 0 ; میں < s i++ )

vector_1.push_back ( بنائیں_جوڑا ( first_arr [ میں ] , second_arr [ میں ] ) ) ;

cout << 'چھانٹنے سے پہلے:' << endl

کے لیے ( int i = 0 ; میں < s i++ ) {

cout << vector_1 [ میں ] .پہلا << ' << vector_1 [ میں ] دوسرا

<< endl

}

ترتیب دیں ( vector_1.rbegin ( ) , vector_1.rend ( ) ) ;

cout << endl << 'چھانٹنے کے بعد:' << endl

کے لیے ( int i = 0 ; میں < s i++ ) {

cout << vector_1 [ میں ] .پہلا << ' << vector_1 [ میں ] دوسرا

<< endl

}

واپسی 0 ;

}

آؤٹ پٹ:

جوڑوں کا پہلے سے ترتیب دینے والا ویکٹر پہلے یہاں دکھایا گیا ہے، اس کے بعد جوڑوں کا ترتیب شدہ ویکٹر ہے جو اسی طرح چھانٹنے کے عمل کو لاگو کرنے کے بعد یہاں دکھایا گیا ہے۔ جیسا کہ ہم دیکھ سکتے ہیں، ہر جوڑے کا ابتدائی عنصر اس بات کا تعین کرتا ہے کہ جوڑوں کے ویکٹر کو نزولی ترتیب میں کس طرح ترتیب دیا جاتا ہے۔

مثال 3:

یہاں، ہم ویکٹر نمبروں کو ترتیب دینے کے لیے 'bool' قسم کا ایک فنکشن بناتے ہیں جس کا نام 'sortBySecElement' ہے۔ اس فنکشن میں، ہم ایک شرط رکھتے ہیں، 'value1.second < value2.second'، جو جوڑوں کے دونوں ویکٹرز کی دوسری قدروں کا موازنہ کرتا ہے اور اعداد کو واپس کرتا ہے۔

پھر، 'main()' کو مندرجہ ذیل میں کہا جاتا ہے جہاں ہم جوڑوں کا ویکٹر بناتے ہیں۔ مندرجہ ذیل دو صفوں کو شروع کرتا ہے جس کا نام 'new_array1[]' اور 'new_aray2[]' ہے۔ یہاں، ہم ان صفوں میں جوڑوں کی قدریں داخل کرتے ہیں۔ اگلا، ہم ان اقدار کو جوڑوں کے ویکٹر میں داخل کرنے کے لیے 'for' لوپ کا استعمال کرتے ہیں۔ 'push_back()' طریقہ کے اندر، جو ویکٹر کے آخر میں آئٹمز داخل کرنے میں مدد کرتا ہے، 'make_pair' آپشن ہے جسے 'new_array1[]' اور 'new_array2[ سے دو قدروں کا جوڑا آبجیکٹ بنانے کے لیے استعمال کیا جاتا ہے۔ ]' arrays۔

پھر ہم ایک اور 'for' لوپ کا استعمال کرتے ہوئے جوڑوں کے ویکٹر کو آؤٹ پٹ کرتے ہیں۔ 'پہلے' اور 'دوسرے' مطلوبہ الفاظ کو جوڑوں کے ویکٹر کی پہلی اور دوسری قدروں کو حاصل کرنے کے لیے داخل کیا جاتا ہے۔ اس مرحلے پر کوئی چھانٹی نہیں کی جاتی ہے، اور جوڑا ویکٹر آؤٹ پٹ ہوتا ہے۔ اب ہم اسے ترتیب دینے کے لیے 'sort()' فنکشن استعمال کرتے ہیں۔ جوڑوں کے ویکٹر کا آغاز اور اختتام اس معاملے میں 'begin()' اور 'end()' فنکشنز کے استعمال کے ذریعے 'sort()' فنکشن کو فراہم کیا جاتا ہے۔ ہم 'sortBySecElement' فنکشن بھی رکھتے ہیں جو ہم نے پہلے اس 'sort()' فنکشن کے اندر بنایا تھا جہاں ہم ویکٹر کے دوسرے عنصر سے جوڑوں کے ویکٹر کو صعودی ترتیب میں ترتیب دیتے ہیں۔

اب، ہم 'for' لوپ کو دوبارہ استعمال کرتے ہیں۔ پھر، پہلے اور دوسرے مطلوبہ الفاظ کو 'cout' میں 'new_vec[i]' کے ساتھ داخل کیا جاتا ہے تاکہ ترتیب دینے کے بعد دوبارہ جوڑوں کا ویکٹر بنایا جا سکے۔ یہ وہ جگہ ہے جہاں اب صعودی ترتیب میں جوڑوں کا ترتیب شدہ ویکٹر پرنٹ کیا جاتا ہے۔

کوڈ 3:

# شامل کریں

نام کی جگہ کا استعمال کرتے ہوئے 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 قدر = سائز کا ( new_arr1 ) / کا سائز ( new_arr1 [ 0 ] ) ;

کے لیے ( int میں = 0 ; میں < قدر؛ i++ )

new_vec.push_back ( بنائیں_جوڑا ( new_arr1 [ میں ] ,new_arr2 [ میں ] ) ) ;

cout << 'چھانٹنے سے پہلے:' << endl

کے لیے ( int میں = 0 ; میں < قدر؛ i++ )

{

cout << نئی_چیز [ میں ] .پہلا << '

<< نئی_چیز [ میں ] دوسرا << endl

}

ترتیب دیں ( new_vec.begin ( ) , new_vec.end ( ) , sortBySecElement ) ;

cout << endl << 'چھانٹنے کے بعد:' << endl

کے لیے ( int میں = 0 ; میں < قدر؛ i++ )

{

cout << نئی_چیز [ میں ] .پہلا << '

<< نئی_چیز [ میں ] دوسرا << endl

}

واپسی 0 ;

}

آؤٹ پٹ:

یہاں، جوڑوں کا ترتیب شدہ ویکٹر ظاہر ہوتا ہے، اور چھانٹنا جوڑوں کی دوسری قدروں کے مطابق کیا جاتا ہے۔ جوڑوں کا دوسرا عنصر صعودی ترتیب میں ذخیرہ کیا جاتا ہے اور یہاں دکھایا جاتا ہے۔

نتیجہ

یہ گائیڈ C++ میں 'جوڑوں کی ترتیب ویکٹر' کے بارے میں ہے۔ ہم نے 'جوڑوں کے ویکٹر' کو چھانٹنے کے ساتھ ساتھ 'جوڑوں کے ویکٹر' کو صعودی اور نزولی ترتیب میں تلاش کیا۔ ہم نے ان مثالوں سے اس کی وضاحت کی جس میں ہم C++ پروگرامنگ میں ان جوڑوں کے پہلے اور دوسرے نمبر کے مطابق 'جوڑوں کے ویکٹر' کو ترتیب دیتے ہیں۔ ہم نے سیکھا کہ 'سانٹ()' طریقہ اس ترتیب کو کرنے میں مدد کرتا ہے۔