ST + in c ++: ہر وہ چیز جو آپ کو جاننے کی ضرورت ہے



یہ مضمون آپ کو C ++ میں STL کے بارے میں تفصیلی اور جامع معلومات فراہم کرے گا اور آپ کو مختلف کنٹینرز کے بارے میں بھی خیال فراہم کرے گا۔

معیاری ٹیمپلیٹ لائبریری (ایس ٹی ایل) سی ++ ٹیمپلیٹ کلاسوں کا ایک مجموعہ ہے جو پروگراموں کے عمومی اعداد و شمار کے ڈھانچے اور کاموں جیسے فہرستوں ، اسٹیکس ، ارایوں وغیرہ کو مہی provideا کرتا ہے سی ++ مضمون میں اس ایس ٹی ایل میں ہم مندرجہ ذیل نکات پر تبادلہ خیال کریں گے۔

اس مضمون کے ساتھ سی ++ میں ایس ٹی ایل پر آگے بڑھ رہے ہیں





C ++ ٹیمپلیٹس

سی ++ ہمیں ٹیمپلیٹس کی ایک خصوصیت فراہم کرتا ہے جو کاموں اور کلاسوں کو عام قسم کے ساتھ چلانے کی اجازت دیتا ہے۔ اس سے کسی فنکشن یا طبقے کی دوبارہ پریوستیت کی اجازت ملتی ہے اور ہر ایک کے لئے دوبارہ لکھے بغیر اس کی بہت سی مختلف ڈیٹا کی اقسام پر کام کرنے کی اجازت ملتی ہے۔

اس مضمون کے ساتھ سی ++ میں ایس ٹی ایل پر آگے بڑھ رہے ہیں



عام افعال اور ایس ٹی ایل

ایک وقت میں پروگرام کرنے کے دوران ایسے افعال تخلیق کرنے کی ضرورت ہوتی ہے جو ایک ہی کام انجام دیتے ہیں لیکن اعداد و شمار کی مختلف اقسام کے ساتھ کام کرتے ہیں۔ لہذا اس مسئلے پر قابو پانے کے لئے C ++ بہت سارے افعال کی بجائے ایک عام فعل تخلیق کرنے کی خصوصیت فراہم کرتا ہے جو ٹیمپلیٹ پیرامیٹر کا استعمال کرکے مختلف ڈیٹا کی قسم کے ساتھ کام کرسکتا ہے۔ ان جینرک کلاسوں اور افعال کے مجموعہ کو اسٹینڈرڈ ٹیمپلیٹ لائبریری (ایس ٹی ایل) کہا جاتا ہے۔

ایس ٹی ایل کے اجزا جو اب معیاری سی ++ لائبریری کا حصہ ہیں وہ نام کی جگہ ایس ٹی ڈی میں متعین ہیں۔ لہذا ، ہمیں اپنے پروگرام میں درآمد کرنے کے لئے نام کی جگہ استعمال کرنے والی ہدایت کا استعمال کرنا چاہئے۔

نحو:



نام کی جگہ ایس ٹی ڈی کا استعمال

ایس ٹی ایل کے تین اجزاء ہیں

  • کنٹینر

  • الگورتھم

  • آئٹریٹر

یہ تینوں اجزاء متعدد پروگرامنگ حلوں کی مدد فراہم کرنے کے لئے باہمی تعاون کے ساتھ مل کر کام کرتے ہیں۔ الگورتھم کنٹینرز میں ذخیرہ شدہ آپریشن انجام دینے کے لئے تکرار کرنے والوں کو ملازمت دیتا ہے۔

کنٹینر وہ چیز ہے جو میموری میں ڈیٹا کو ایک منظم فیشن میں اسٹور کرتی ہے۔ ایس ٹی ایل میں موجود کنٹینرز کو ٹیمپلیٹ کلاسوں کے ذریعہ نافذ کیا جاتا ہے اور اس لئے مختلف اقسام کے ڈیٹا کو رکھنے کے ل easily آسانی سے اس میں ترمیم اور تخصیص کی جاسکتی ہے۔

ایک طریقہ کار جو کنٹینر میں موجود ڈیٹا پر کارروائی کرنے کے لئے استعمال ہوتا ہے اسے الگورتھم سے تعبیر کیا جاتا ہے۔ ایس ٹی ایل میں بہت سے مختلف قسم کے الگورتھم شامل ہیں جیسے کاموں کو اعانت فراہم کرنا ، تلاش کرنا ، کاپی کرنا ، ترتیب دینا ، اور ملانا ، کاپی کرنا ، چھانٹانا ، اور ضم کرنا۔ الگورتھم ٹیمپلیٹ کے افعال کے ذریعہ نافذ ہوتے ہیں۔

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

Container-STL-in-C++

اس مضمون کے ساتھ سی ++ میں ایس ٹی ایل پر آگے بڑھ رہے ہیں

کنٹینر

ایس ٹی ایل نے دس کنٹینر کی وضاحت کی جن کو تین قسموں میں گروپ کیا گیا ہے۔

کنٹینر

تفصیل

ہیڈر فائل

Iterator

ویکٹر

اس کو ایک متحرک صف کی طرح بیان کیا جاسکتا ہے۔ یہ کسی بھی عنصر تک براہ راست رسائی کی اجازت دیتا ہے۔

بے ترتیب رسائی

فہرست

یہ دو طرفہ لکیری فہرست ہے۔ یہ کہیں بھی داخل اور حذف کرنے کی اجازت دیتا ہے

دو طرفہ

اور

یہ ایک ڈبل ختم ہونے والی قطار ہے۔ دونوں سروں پر اندراج اور حذف کی اجازت دیتا ہے۔ کسی بھی عنصر تک براہ راست رسائی کی اجازت دیتا ہے۔

بے ترتیب رسائی

سیٹ کریں

یہ منفرد سیٹ اسٹور کرنے کے لئے ایک ایسوسی ایٹ کنٹینر ہے۔ تیزی سے دیکھنے کی اجازت دیتا ہے۔

دو طرفہ

ملٹی سیٹ

یہ غیر جداگانہ سیٹوں کو اسٹور کرنے کیلئے ایسوسی ایٹ کنٹینر ہے۔

دو طرفہ

نقشہ

یہ منفرد کلید / قدر کے جوڑے ذخیرہ کرنے کے لئے ایک ایسوسی ایٹ کنٹینر ہے۔ ہر کلید صرف ایک قدر سے وابستہ ہے۔

دو طرفہ

ملٹی میپ

یہ کلید / قیمت کو اسٹور کرنے کے لئے ایک ایسوسی ایٹ کنٹینر ہے جس میں ایک کلید ایک سے زیادہ ویلیو (ایک سے زیادہ میپنگ) سے وابستہ ہوسکتی ہے۔ یہ کلیدی بنیاد پر تلاش کرنے کی اجازت دیتا ہے۔

دو طرفہ

اسٹیک

ایک معیاری اسٹیک آخر میں پہلی بار آؤٹ ہوتا ہے (LIFO)

کوئی تکرار کرنے والا نہیں

قطار

پہلے سے پہلے آؤٹ ہونے والے ایک معیاری قطار (FIFO)

کوئی تکرار کرنے والا نہیں

ترجیحی قطار

پہلا عنصر ہمیشہ اعلی ترجیح عنصر ہوتا ہے

کوئی تکرار کرنے والا نہیں

تسلسل کنٹینرز

تسلسل کے کنٹینر عناصر کو ایک لکیری ترتیب میں جمع کرتے ہیں۔ لائن کے ساتھ ساتھ ان کی پوزیشن کے ذریعہ تمام عناصر ایک دوسرے سے متعلق ہیں۔ وہ عنصر داخل کرنے کی اجازت دیتے ہیں اور یہ سب ان پر کئی کاروائیوں کی حمایت کرتے ہیں۔

STL ترتیب عناصر کی تین اقسام فراہم کرتا ہے:

  • ویکٹر
  • فہرست
  • اور

ایسوسی ایٹ کنٹینرز:

انہیں اس طرح ڈیزائن کیا گیا ہے کہ وہ چابیاں استعمال کرنے والے عناصر تک براہ راست رسائی کی حمایت کرسکیں۔ وہ ترتیب وار نہیں ہیں۔ اس کی چار اقسام ہیں

ایسوسی ایٹ کنٹینرز:

  1. سیٹ کریں
  2. ملٹی سیٹ
  3. نقشہ
  4. ملٹی میپ

مذکورہ بالا تمام کنٹینر ڈیٹا کو درخت نامی ڈھانچے میں اسٹور کرتے ہیں جو تیزی سے سہولت فراہم کرتا ہے

ترتیب کے برخلاف تلاش کرنا ، حذف کرنا ، اور داخل کرنا۔ کنٹینر سیٹ یا ملٹی سیٹ مختلف اشیا کو محفوظ کرسکتا ہے اور کلیدوں کے بطور اقدار کو استعمال کرتے ہوئے ان کو جوڑ توڑ کے لئے آپریشن فراہم کرسکتا ہے۔

اور نقشہ یا ملٹی میپ کا استعمال جوڑا میں اشیاء کو ذخیرہ کرنے کے لئے کیا جاتا ہے ، جن میں سے ایک کو کلیدی اور دوسرا کہا جاتا ہے

قدر کہا جاتا ہے۔

اخذ کنٹینر:

ایس ٹی ایل تین مشتق کنٹینرز فراہم کرتا ہے ، جیسے اسٹیک ، قطار ، اور ترجیح_کیو۔ انھیں کنٹینر اڈیپٹر بھی کہا جاتا ہے۔

سی ++ ints کی ترتیب سرنی

اخذ کنٹینرز کی تین اقسام ہیں۔

1. اسٹیک

2. کیوئ

3. اہمیت_کیو

اسٹیکس ، قطار اور ترجیحی قطار آسانی سے مختلف ترتیب کنٹینرز سے تشکیل دی جاسکتی ہے۔ اخذ کردہ کنٹینر آریٹرس کو سپورٹ نہیں کرتے ہیں لہذا ہم ان کو ڈیٹا ہیرا پھیری کے ل use استعمال نہیں کرسکتے ہیں۔ تاہم ، حذف کرنے اور داخل کرنے کی کاروائیوں پر عمل درآمد کے ل for وہ دو ممبران فنکشن پاپ () اور (دباؤ) کی حمایت کرتے ہیں۔

اس مضمون کے ساتھ سی ++ میں ایس ٹی ایل پر آگے بڑھ رہے ہیں

الگورتھم

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

STL الگورتھم دوبارہ پریوستیت کے فلسفہ کو تقویت بخشتا ہے۔ ان الگورتھم کا استعمال کرکے ، پروگرامر بہت زیادہ وقت اور کوشش بچا سکتے ہیں۔ STL الگورتھم تک رسائی حاصل کرنے کے ل we ، ہمیں اپنے پروگرام میں شامل کرنا ہوگا۔

ایس ٹی ایل الگورتھم ، جو وہ انجام دیتے ہیں ان کی نوعیت کی بنیاد پر ، درجہ بندی کی جاسکتی ہے:

  • غیر الگ الگورتھم

  • الگورتھم کو تبدیل کرنا

  • الگورتھم کی ترتیب

  • الگورتھم سیٹ کریں

  • متعلقہ الگورتھم

اس مضمون کے ساتھ سی ++ میں ایس ٹی ایل پر آگے بڑھ رہے ہیں

Iteters:

Iteters اشارہ کی طرح کام کرتے ہیں اور کنٹینر کے عناصر تک رسائی حاصل کرنے کے لئے استعمال کیا جاتا ہے. ہم کنٹینروں کے مندرجات کو منتقل کرنے کے لئے تکرار کرنے والوں کا استعمال کرتے ہیں۔ اشارے اشارے کی طرح ہی سنبھالے جاتے ہیں۔ ہم اپنی ضروریات کے مطابق ان میں اضافہ یا کمی کرسکتے ہیں۔ Iteters کنٹینرز کو الگورتھم سے مربوط کرتے ہیں اور کنٹینر میں محفوظ ڈیٹا کی ہیرا پھیری میں اہم کردار ادا کرتے ہیں۔ وہ اکثر ایک عنصر سے دوسرے عنصر میں سے گزرنے کے لئے استعمال ہوتے ہیں ، اس عمل کو کنٹینر کے ذریعے تکرار کرنا کہتے ہیں۔

پانچ قسم کے تکرار کرنے والے ہیں:

1. ان پٹ

2. آؤٹ پٹ

3. فارورڈ

4. سمت

5. رینڈم

Iterator

رسائی کا طریقہ

حرکت کی سمت

I / O قابلیت

تبصرہ

ان پٹ

لکیری

صرف آگے

صرف پڑھو

محفوظ نہیں کیا جاسکتا

آؤٹ پٹ

لکیری

صرف آگے

صرف لکھیں

محفوظ نہیں کیا جاسکتا

آگے

لکیری

صرف آگے

پڑھ لکھ

بچایا جاسکتا ہے

دو طرفہ

لکیری

آگے اور پیچھے

پڑھ لکھ

بچایا جاسکتا ہے

بے ترتیب

بے ترتیب

آگے اور پیچھے

پڑھ لکھ

بچایا جاسکتا ہے

مختلف اقسام کے کنٹینرز کے ساتھ مختلف قسم کے تکرار کرنے والے افراد کو لازمی طور پر استعمال کیا جانا چاہئے

ترتیب اور اسسوسی ایٹ کنٹینرز کو دوبارہ چلانے والوں کے ذریعے سفر کرنے کی اجازت ہے۔ ہر طرح کے تکرار کرنے والے کچھ خاص کام انجام دینے کے لئے استعمال ہوتے ہیں۔ ان پٹ اور آؤٹ پٹ آئٹرس کم سے کم افعال کی حمایت کرتے ہیں۔ انہیں صرف ایک کنٹینر میں سے گزرنے کے لئے استعمال کیا جاسکتا ہے۔ فارورڈ ایٹریٹرز ان پٹ اور آؤٹ پٹ آئٹرس کے تمام کاموں کی حمایت کرتے ہیں اور کنٹینر میں بھی اپنی پوزیشن برقرار رکھتے ہیں۔ ایک دوئداگھجنے والا تکرار کرنے والا ، جبکہ تمام فارورڈ ریڈیٹرز آپریشنوں کی حمایت کرتا ہے ، کنٹینر میں پسماندہ سمت میں منتقل ہونے کی صلاحیت فراہم کرتا ہے۔

اس طرح ہم ‘ST + in C ++’ پر اس مضمون کے اختتام کو پہنچے ہیں۔ اگر آپ مزید جاننا چاہتے ہیں تو ، چیک کریں ایڈورکا ، جو ایک قابل اعتماد آن لائن سیکھنے کی کمپنی ہے۔ ایڈورکا کا جاوا J2EE اور SOA ٹریننگ اور سرٹیفیکیشن کورس آپ کو ہائبرنیٹ اور اسپرنگ جیسے جاوا کے مختلف فریم ورکوں کے ساتھ ساتھ جاوا کے دونوں بنیادی تصورات کی تربیت کے لئے ڈیزائن کیا گیا ہے۔

ہمارے لئے ایک سوال ہے؟ برائے کرم اس بلاگ کے تبصرے سیکشن میں اس کا تذکرہ کریں اور ہم جلد سے جلد آپ کے پاس مل جائیں گے۔